c++ 如何判断线程是否存活
时间: 2023-11-25 19:08:25 浏览: 348
在C++11及以上的标准中,可以使用`std::thread::joinable()`函数来判断一个线程是否存活。该函数返回一个布尔值,如果线程仍然在运行或者已经分离,返回true,否则返回false。
例如,下面的代码演示了如何判断一个线程是否存活:
```c++
#include <iostream>
#include <thread>
void myThreadFunc()
{
std::cout << "Thread running...\n";
}
int main()
{
std::thread myThread(myThreadFunc);
if (myThread.joinable())
{
std::cout << "Thread is alive.\n";
}
else
{
std::cout << "Thread is not alive.\n";
}
myThread.join();
if (myThread.joinable())
{
std::cout << "Thread is alive.\n";
}
else
{
std::cout << "Thread is not alive.\n";
}
return 0;
}
```
在上面的代码中,我们创建了一个线程`myThread`并检查它是否存活,然后等待它完成并再次检查它是否存活。注意,在调用`join()`函数之前,必须先检查线程是否可加入,否则程序会抛出`std::system_error`异常。
阅读全文