标签: c++ boost
我正在使用boost::thread join方法等待线程完成。但是如果我尝试join线程已经完成,我会收到一个异常。那么我怎么能:
boost::thread join
join
如果激活则加入线程,如果不活动则不执行任何操作?
答案 0 :(得分:6)
使用joinable()功能检查是否应该加入:
joinable()
if (thread.joinable()) thread.join();
你可以(事实上,你必须)加入一个线程,即使它已经完成,除非它已被分离。加入它两次,或加入一个空的或分离的线程是错误的。