pthread_cond_signal()的具体位置?
来源:百度文库 编辑:神马文学网 时间:2024/04/30 00:49:25
pthread_cond_wait必须放在pthread_mutex_lock和pthread_mutex_unlock之间,因为他要根据共享变量的状态来觉得是否要等待,而为了不永远等待下去所以必须要在lock/unlock队中
共享变量的状态改变必须遵守lock/unlock的规则
pthread_cond_signal即可以放在pthread_mutex_lock和pthread_mutex_unlock之间,也可以放在pthread_mutex_lock和pthread_mutex_unlock之后,但是各有有缺点。
之间:
pthread_mutex_lock
xxxxxxx
pthread_cond_signal
pthread_mutex_unlock
缺点:在某下线程的实现中,会造成等待线程从内核中唤醒(由于cond_signal)然后又回到内核空间(因为cond_wait返回后会有原子加锁的行为),所以一来一回会有性能的问题。但是在LinuxThreads或者NPTL里面,就不会有这个问题,因为在Linux线程中,有两个队列,分别是cond_wait队列和mutex_lock队列,cond_signal只是让线程从cond_wait队列移到mutex_lock队列,而不用返回到用户空间,不会有性能的损耗。
所以在Linux中推荐使用这种模式。
之后:
pthread_mutex_lock
xxxxxxx
pthread_mutex_unlock
pthread_cond_signal
优点:不会出现之前说的那个潜在的性能损耗,因为在signal之前就已经释放锁了
缺点:如果unlock和signal之前,有个低优先级的线程正在mutex上等待的话,那么这个低优先级的线程就会抢占高优先级的线程(cond_wait的线程),而这在上面的放中间的模式下是不会出现的。
所以,在Linux下最好pthread_cond_signal放中间,但从编程规则上说,其他两种都可以
共享变量的状态改变必须遵守lock/unlock的规则
pthread_cond_signal即可以放在pthread_mutex_lock和pthread_mutex_unlock之间,也可以放在pthread_mutex_lock和pthread_mutex_unlock之后,但是各有有缺点。
之间:
pthread_mutex_lock
xxxxxxx
pthread_cond_signal
pthread_mutex_unlock
缺点:在某下线程的实现中,会造成等待线程从内核中唤醒(由于cond_signal)然后又回到内核空间(因为cond_wait返回后会有原子加锁的行为),所以一来一回会有性能的问题。但是在LinuxThreads或者NPTL里面,就不会有这个问题,因为在Linux线程中,有两个队列,分别是cond_wait队列和mutex_lock队列,cond_signal只是让线程从cond_wait队列移到mutex_lock队列,而不用返回到用户空间,不会有性能的损耗。
所以在Linux中推荐使用这种模式。
之后:
pthread_mutex_lock
xxxxxxx
pthread_mutex_unlock
pthread_cond_signal
优点:不会出现之前说的那个潜在的性能损耗,因为在signal之前就已经释放锁了
缺点:如果unlock和signal之前,有个低优先级的线程正在mutex上等待的话,那么这个低优先级的线程就会抢占高优先级的线程(cond_wait的线程),而这在上面的放中间的模式下是不会出现的。
所以,在Linux下最好pthread_cond_signal放中间,但从编程规则上说,其他两种都可以
pthread_cond_signal()的具体位置?
pthread_cond_signal()的具体位置? - C/C - ChinaUnix.net
涌泉穴的具体位置在哪? - 已回答 - 天涯问答
若要安,三里常不干 足三里的具体位置及艾灸
最精准方便的IP测试,直接找到你的具体位置
人体穴位图解 (点击穴位名称,图片上将出现该穴位的具体位置)2
长寿第一大穴——足三里的具体位置及艾灸方法
哈尔滨有什么好吃的东西,具体位置都在那 - 已解决 - 搜搜问问
长寿第一大穴——足三里的具体位置及艾灸方法
人体穴位图解 全(点击穴位名称,图片上将出现该穴位的具体位置)
穴位图解 (点击穴位名称,图片上将出现该穴位的具体位置)
人体穴位图解 (点击穴位名称,图片上将出现该穴位的具体位置)1
人体穴位图解 (点击穴位名称,.图片上将出现该穴位的具体位置)
人体穴位图解 (穴位名称,图片上将出现该穴位的具体位置)
人体穴位图解 (点击穴位名称,图片上将出现该穴位的具体位置)001
人体穴位图解 (点击穴位名称,图片上将出现该穴位的具体位置).
=-人体穴位图解 (点击穴位名称,图片上将出现该穴位的具体位置)
人体穴位图解 、(点击穴位名称,图片上将出现该穴位的具体位置)
人体108穴位具体位置
颌下淋巴结具体位置在哪里? - 已解决 - 搜搜问问
鲜为人知的的历史事件
马加爵的的诗
不老的的美女,
有钱的...没钱的...