作者littleboypis (littleboypis)
看板C_and_CPP
标题[问题] Thread Pool/Queue的设计方式
时间Tue Mar 24 10:48:11 2009
※ [本文转录自 Programming 看板]
作者: littleboypis (littleboypis) 看板: Programming
标题: [问题] Thread Pool/Queue的设计方式
时间: Tue Mar 24 10:47:48 2009
各位好
最近想用C实作出一个Thread Pool or Thread Queue
但是有一个问题
要怎麽Pool中的Thread可以不用一直while() { sleep }
也可以保持在可随时执行的状态呢
如果说我要让Thread不会被 return & pthread_exit
就得要用while包住
如下
ThreadCodeBody {
while(1)
{
if( hasTask )
runThread( TaskFunc )
else if ( noTask )
sleep( 1 );
}
}
Thread的程式可能就会像上头这样
但是这有个问题就是
如果没有工作时他就得不断的Sleep个几秒
然後醒来检查看有没有Task进来
这样感觉很没效率
所以想请教各位
是不是有什麽样的方式
可以让Thread不工作的时候可以直接WAIT
然後有工作进来时就可以直接执行
而不需不断的Sleep and Wake Up
另外,想请问大家
有没有比较推荐效能比较好的Thread Pool or Thread Queue(用C写的)的Library
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.105.238
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.105.238
1F:→ hpeter:用 poll or select 等待时间设无限大?? 03/24 18:57