概述
一、我们知道,同一个进程中的所有线程是共享进程资源的。因此多线程中,线程同步则成为了一个很重要的话题。所谓“同步”,即“协同步调,按预定的先后次序进行运行”,同步是自愿的,参与者必须协调工作使系统运行(此句引用于《POSIX多线程程序设计》)。所以“既需要在线程间共享数据,又需要以一致的顺序在线程间执行一组操作”。则必须借助于线程的同步手段、机制来实现。线程同步方法较多,常用到的有:互斥锁、条件变量(配合互斥锁)、信号量、读写锁、自旋锁等。其中互斥锁是所有“线程同步”手段中最为简单且容易理解的一种。互斥锁和条件变量都出自于POSIX.1
线程标准,它们总是可用来同步一个进程内的各个线程的。
二、互斥锁,一次只能允许有一个线程能够获得互斥量。尝试获取同一个互斥量的其他线程必须等待目前拥有该互斥量的线程将其释放。互斥锁提供了同步的能力,可以控制线程如何共享资源。使用互斥锁可以避免在同一时刻多个线程修改共享的数据并且保证一个线程能够从一套资源中读到一致性数据,其他线程可以修改这些资源。如图:
最后
以上就是靓丽大侠为你收集整理的Linux线程同步之互斥锁的全部内容,希望文章能够帮你解决Linux线程同步之互斥锁所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复