我有一个项目,需要多线程工作。
所有子线程从一个fifo中取原始数据,分析。分析的结果会产生新的原始数据要写入fifo
主线程负责创建创建线程,并控制子线程个数不能大于4。
此外,主线程在以下情况退出:
1、接受用户消息要可以随时停止,并在所有子线程退出后退出。
2、在所有子线程退出后退出后,发现fifo没有新数据时。
该怎么样设计这个流程呢?请高手指点。
请在以下伪代码中修改,或重新设计。CFifoSync data; //有同步能力的fifo
void oneThread(void *para) //子线程
{
data.get();
//分析..
data.put();
}
main()
{
do
{
if(用户要求退出)
{
break;
}
if( 当前线程数< 4) //当前线程数 如何控制?如何同步?
{
beginThread( oneThread, ....);
}
else
{
Sleep(1000);
continue;
}
}while( data.GetLength() > 0 );
waitObject???
//怎么怎么所有线程结束了?
}
posted on 2006-10-20 12:41
游子 阅读(749)
评论(1) 编辑 收藏 引用 所属分类:
硬件 、
软件