linux多线程怎么实现等待队列

frogoscar
企业官方账号
2012-01-11 01:32:58
比如我用一类线程模拟火车,一类线程模拟火车行驶路段上的控制台。
我用互斥锁和条件变量控制各个(火车)线程的行进。
现在有两种路段,第一种是行车路段,不能停。
另一种是可以让多辆火车在里面停的“车库”路段(以队列的方式停)。
我应该怎么编码才能够实现: 在“车库”路段里,如果控制台线程放行火车线程,则放行的是第一辆进“车库”的火车(线程),而不是在“车库”里的多辆火车里任选一辆等待条件变量的放行之。
因为单用pthread_cond_signal,它释放被阻塞在条件变量cond上的一个线程。多个线程阻塞在此条件变量上时,哪一个线程被唤醒是由线程的调度策略所决定的。
所以需要用等待队列,是吧?
应该怎么做呢?

谢谢!
...全文
153 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fallentopaz 2012-02-01
  • 打赏
  • 举报
回复
你不是已经说了用队列q吗,或者用List也一样呀,先进先出。
写一个线程a.对信号量做检查
while( signal){ q.front()取得第一个 ; q.pop出队列。}
frogoscar 2012-01-18
  • 打赏
  • 举报
回复
没人回答~~~~~~~~

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧