检查有效的线程

时间:2011-04-07 15:27:49

标签: c++ multithreading boost

如果你有一个保存的线程id(使用boost :: thread :: get_id()函数获得),你如何检查该线程当前是否正在运行?

3 个答案:

答案 0 :(得分:1)

Dunno如果这有帮助,但是如果你存储一个指向boost :: thread的指针,你可以查询boost::thread::joinable吗?

答案 1 :(得分:1)

if (thread->joinable() && ! thread->timed_join(**zero_time here**)) {
  /* still running */
} else {
  /* not running */
}

答案 2 :(得分:1)

你不能这样做,至少不能携带。

您需要设置线程在结束之前写入的共享变量。其他线程可以读取该变量以确定目标线程的状态。您需要将此变量与atomics或互斥锁同步。

相关问题