永发信息网

linux下信号量和互斥锁的区别

答案:2  悬赏:70  手机版
解决时间 2021-11-22 12:27
linux下信号量和互斥锁的区别
最佳答案
信号量与互斥锁之间的区别:
1. 互斥量用于线程的互斥,信号量用于线程的同步。
这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。
互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。
同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源
2. 互斥量值只能为0/1,信号量值可以为非负整数。
也就是说,一个互斥量只能用于一个资源的互斥访问,它不能实现多个资源的多线程互斥问题。信号量可以实现多个同类资源的多线程互斥和同步。当信号量为单值信号量是,也可以完成一个资源的互斥访问。
3. 互斥量的加锁和解锁必须由同一线程分别对应使用,信号量可以由一个线程释放,另一个线程得到。
全部回答
信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在哪里)。

而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这个资源。比如对全局变量的访问,有时要加锁,操作完了,在解锁。

有的时候锁和信号量会同时使用的。我记得以前做的一个项目就是既有semtake,又有lock。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
极品公子白阳玄被某男子带走后的大概剧情是什
冰丝防晒袖套银川哪里有卖
有谁知道男主老婆是狐狸,前世是妲己,男主前
韵雅纹绣美容地址好找么,我有些事要过去,
stop to do和stop doing是什么意思
什么是精神生活
小苍奈奈种子 一个10分
这个毛绒玩具兔子是什么牌子叫什么?
看图猜成语图片版82关上面是深色蓝天下面是白
芙尔蔓美容养生会所地址好找么,我有些事要过
儿童摄影十月份过后老是断档有什么好的办法,
桔子宾馆(青岛城阳区)地址在哪,我要去那里办
宣这个姓英语中怎么发音到底是shuen还是suen
C8051F020单片机 进行A\D转换,三路模拟
新苑旅馆(青岛城阳区)地址在什么地方,想过去
推荐资讯
在长春坐高铁到滋博多长时间到?
工伤,,上下班途中界定
wwe约翰塞纳9月几号来上海
图尔库的介绍
如果有一个人知道我的银行帐号,他能把我的钱
腾达汽车维修(泉州南安市)地址好找么,我有些
50-30÷4怎么算
我的车子,1档换2档时有响声是怎么回事啊!
pp塑料板怎样折弯
歌词有go home can i外国歌
3x十5x一4x=1·6求解
小说的长中短篇怎么划分?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?