检查std :: thread是否仍在运行

时间:2015-11-26 16:47:37

标签: c++ multithreading

有没有办法确定线程是否仍在运行?我出于几个原因无法使用std::futurestd::async

我想到某种join超时,例如尝试加入一个线程3秒,如果成功,则认为该线程已完成,否则认为该线程正在运行。

1 个答案:

答案 0 :(得分:2)

最接近的是std::thread::joinable()。引自引用:

  

检查线程对象是否标识了活动的执行线程。具体而言,如果true则返回get_id() != std::thread::id()。因此,默认构造的thread不可连接   已完成执行代码但尚未加入的线程仍被视为活动执行线程,因此可以连接。