我在一个进程中创建了大约 300 个 boost 线程。有没有办法根据线程 id 加入特定线程?
问问题
527 次
1 回答
9
这取决于你如何保存boost::thread
s。如果您将它们保存在容器中(使用T = boost::thread*
),您可以简单地使用类似
for(iterator it = ctn.begin(); it != ctn.end(); ++it){
if(it->get_id() == join_thread_id){
it->join();
break;
}
}
但是,如果您不将线程保存在某处并且只使用new boost::thread
而不保存指针,则这是不可能的,因为 boost 不提供任何自动簿记功能。
1.备注:请记住,您需要使用boost::thread::id
来保存id。
2. 备注:std::map<boost::thread::id,boost::thread*>
对于此类任务可能会派上用场。
于 2012-12-19T12:07:11.870 回答