【发布时间】:2016-04-10 13:19:16
【问题描述】:
所以我在网上搜索了一些答案,但似乎没有任何明确的答案。我的问题很简单,比如说,我需要 5 个工作线程进入一个队列,然后向它们的老板线程(线程 6)发出信号,表明它们都在队列中准备好工作。由于我的程序其余部分的工作方式,如果我想要完成的工作确实有效,那将是最好的,也就是说:
所以如果我让老板线程锁定,看到队列没有完全满,老板会pthread_cond_wait(...); 并等到它满了。现在,所有工作线程都将进入队列并等待,一旦最后一个线程进入,他将向主线程发出信号然后等待。那么在最后一个工人发出信号到他等待他的时间之间,老板还会等到最后一个助手打到等待吗?因为我不希望老板在最后一个线程真正等待之前做任何事情。所以最后一个线程不会打到pthread_mutex_unlock(...),他会打到pthread_cond_wait(...),我想验证这是否会唤醒我们老板。在此先感谢,我希望我的问题很清楚,我倾向于过度解释一切:/
【问题讨论】:
标签: c multithreading pthreads