本文内容主要来自博文:Linux系统编程——线程同步与互斥:互斥锁
同时补充以下博文说明:
[1] Linux线程-互斥锁pthread_mutex_t
[2] POSIX 互斥锁: pthread_mutex_t
为什么需要互斥锁?
在多任务操作系统中,同时运行的多个任务可能都需要使用同一种资源。这个过程有点类似于,公司部门里,我在使用着打印机打印东西的同时(还没有打印完),别人刚好也在此刻使用打印机打印东西,如果不做任何处理的话,打印出来的东西肯定是错乱的。
下面我们用程序模拟一下这个过程,线程一需要打印“ hello ”,线程二需要打印“ world ”,不加任何处理的话,打印出来的内容会错乱:
#include <stdio.h> #include <pthread.h> #include <unistd.h> // 打印机 void printer(char *str) { while(*str!='