如果你有一个保存的线程id(使用boost :: thread :: get_id()函数获得),你如何检查该线程当前是否正在运行?
答案 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或互斥锁同步。