我在一个进程中创建了大约300个boost程序。 有没有办法根据线程ID加入特定的线程?
答案 0 :(得分:9)
天堂取决于你如何拯救boost::thread
。如果将它们保存在容器中(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*>
可能会为此类任务派上用场。