码迷,mamicode.com
首页 > 其他好文 > 详细

信号量、互斥锁和条件变量的区别

时间:2019-07-23 15:17:23      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:mic   ima   margin   生产者   消费   线程   info   代码   发送   

1、互斥锁总是必须由给其上锁的线程解锁,信号量的挂出确不必由执行过它的等待操作的同一线程执行。

技术图片

                                生产者与消费者伪代码

 

2、互斥锁要么被锁住,要么被解锁(二值状态,类似于二值信号量)

3、既然信号量有一个与之关联的状态(它的数值),那么信号量的挂出操作总是被记住。然而当向一个条件变量发送信号时,如果没有线程等待在该条件变量上,那么信号将丢失。

 

ps:提供信号量的原因是,在进程间同步的情况下,若没有涉及到共享内存区时,需要使用信号量。

 

信号量、互斥锁和条件变量的区别

标签:mic   ima   margin   生产者   消费   线程   info   代码   发送   

原文地址:https://www.cnblogs.com/rabbit0212/p/11231653.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!