专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

linux多线程如何实现等待队列

发布时间:2011-06-28 16:17:56 文章来源:www.iduyao.cn 采编人员:星星草
linux多线程怎么实现等待队列
比如我用一类线程模拟火车,一类线程模拟火车行驶路段上的控制台。
我用互斥锁和条件变量控制各个(火车)线程的行进。
现在有两种路段,第一种是行车路段,不能停。
另一种是可以让多辆火车在里面停的“车库”路段(以队列的方式停)。
我应该怎么编码才能够实现: 在“车库”路段里,如果控制台线程放行火车线程,则放行的是第一辆进“车库”的火车(线程),而不是在“车库”里的多辆火车里任选一辆等待条件变量的放行之。
因为单用pthread_cond_signal,它释放被阻塞在条件变量cond上的一个线程。多个线程阻塞在此条件变量上时,哪一个线程被唤醒是由线程的调度策略所决定的。
所以需要用等待队列,是吧?
应该怎么做呢?

谢谢!


------解决方案--------------------
concurent
------解决方案--------------------
给等待队列的合个线程设置不同的优先级,先到的优先级高,可否?
------解决方案--------------------
每个火车给个标志符呗,比如1-10给特快的,11-20给普客,21-30给货车。
然后每出一辆就自增。比如第一辆特快为1,第二辆就是2。。到控制台这就比大小。大概思路这样,不知道行不行。
------解决方案--------------------
你搞一个队列,停的时候把火车push_back进去,出的时候pop_front出来,这样就FIFO了。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: