多线程 - 线程后的线程(立即)

时间:2015-10-09 08:42:48

标签: c++ multithreading boost

我想在thread_group中的线程(立即)之后运行线程。我可以同时只使用4个线程,但我必须调用一个仿函数16次。在下面的代码中,如果t1完成,我需要等待其他(t2t3t4),但我想立即运行t5。< / p>

boost::thread_group tg;

for (int i = 0; i < 16; i+=4){
    tg.create_thread (boost::ref (*(something[i]))); // t1
    tg.create_thread (boost::ref (*(something[i+1]))); // t2
    tg.create_thread (boost::ref (*(something[i+2]))); // t3
    tg.create_thread (boost::ref (*(something[i+3]))); // t4

    tg.join_all ();
}

有可能吗?

修改 这是错误的问题。我需要重新设计我的代码,做我想做的事。

1 个答案:

答案 0 :(得分:0)

使用boost :: asio :: io_service。

当您在io_service上发布所有16个任务时,线程全部执行io_service的run方法