如果joinable如何加入线程,否则什么也不做?

时间:2013-04-15 13:46:14

标签: c++ boost

我正在使用boost::thread join方法等待线程完成。但是如果我尝试join线程已经完成,我会收到一个异常。那么我怎么能:

如果激活则加入线程,如果不活动则不执行任何操作?

1 个答案:

答案 0 :(得分:6)

使用joinable()功能检查是否应该加入:

if (thread.joinable()) thread.join();

你可以(事实上,你必须)加入一个线程,即使它已经完成,除非它已被分离。加入它两次,或加入一个空的或分离的线程是错误的。