当前位置: 技术问答>linux和unix
几个线程的问题
来源: 互联网 发布时间:2016-12-25
本文导语: 1、pthread_cond_broadcast pthread_cond_signal 区别 好像都是激活等待condition的线程, pthread_cond_broadcast激活所有等待线程 pthread_cond_signal激活只有一个等待线程 是不是理解正确,如果正确 pthread_cond_broadcast要通过某种条...
1、pthread_cond_broadcast pthread_cond_signal 区别
好像都是激活等待condition的线程, pthread_cond_broadcast激活所有等待线程 pthread_cond_signal激活只有一个等待线程
是不是理解正确,如果正确 pthread_cond_broadcast要通过某种条件他指定一个线程 这个怎么写?
2、与windows中 waitmultiplesignals(大致这么写的api)的linux函数怎么写
好像都是激活等待condition的线程, pthread_cond_broadcast激活所有等待线程 pthread_cond_signal激活只有一个等待线程
是不是理解正确,如果正确 pthread_cond_broadcast要通过某种条件他指定一个线程 这个怎么写?
2、与windows中 waitmultiplesignals(大致这么写的api)的linux函数怎么写
|
pthread_cond_broadcast之后的解锁顺序跟阻塞在cond上的线程加锁顺序是一致的,不能指定某个线程。你可以在等待在cond上的线程中另外加锁同步。这样当broadcast之后所有的线程都是放了,但是你的线程内部还有维护执行顺序的mutex.
|
windows下是WaitForMultiObjects,内核对象等待,有内核级切换,不建议使用,不是跨进程的同步,请尽量在Windows中是用读写锁、临界区、条件睡眠等用户级同步