读书人

线程池 C++()

发布时间: 2012-06-27 14:20:09 作者: rapoo

线程池 C++(在线等)
线程池

创建一个线程类对象 线程

。。。等待
。。。 运行
返回

空闲队列

注释:线程池里创建线程对象,然后线程启动,进入“等待任务”状态,我现在想问的是线程运行完之后怎么返回到线程池中的“空闲队列”中。急....

[解决办法]
……在线程即将退出的时候将其入空闲队列,或者是改变一个标志位,由管理线程发现其状态是“空闲”。
[解决办法]
定义一个GetTask函数,
如果队列有task直接返回,否则将线程投入到空闲队列中。

有新的task进入管理线程的队列时,管理线程从空闲队列中选择一个空闲线程,将其唤醒
并将task交给这个线程,空闲线程此时从GetTask中返回并获得task.


while(task = GetTask())
{
// do task
}

读书人网 >C++

热点推荐