目录

互斥锁原理


1. 互斥锁原理

互斥锁

如上图所示:如果多个线程要访问一段共享资源的内存区域时,其中一个线程(如图中线程1)首先读取共享区域时,会在共享区域外设置一把互斥锁,其它线程阻塞在互斥锁处,线程1结束共享资源的访问后,会解锁该内存区域,此时其它的线程才可以继续访问共享资源的内存区域。本来多线程访问数据时是并行访问内存区域的,加上互斥锁后变为串行处理。

多线程编程是建议使用互斥锁,这样可以对公共区域的数据进行保护。互斥锁的缺点就是串行,数据访问的效率会有一定的降低。

2. 互斥锁的相关函数

(1)互斥锁的使用步骤

        1. 创建互斥锁:pthread_mutex_t mutex;

         2. 初始化互斥锁: pthread_mutex_init(&mutex, NULL);

 

相关文章: