7

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

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

4

1 回答 1

11

使用该joinable()函数检查是否应加入:

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

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

于 2013-04-15T13:57:40.370 回答