mfc在一个线程判断不同线程是否在运行将正在运行的线程安全退出
要在一个线程中判断其他线程是否在运行并安全退出,可以使用以下步骤:
-
创建一个标志变量来表示线程是否在运行。可以使用一个全局的布尔类型变量来表示,初始值设置为true。
-
在每个线程的run函数中,将标志变量设置为true,表示线程正在运行。
-
在需要判断线程是否在运行的地方,使用标志变量来进行判断。如果标志变量为true,则表示线程正在运行。
-
在需要安全退出线程的地方,将标志变量设置为false,表示线程需要退出。
-
在每个线程的run函数中,使用一个循环来检测标志变量的值。如果标志变量为false,则退出循环,结束线程。
以下是一个示例代码:
#include <iostream>
#include <thread>
#include <atomic>
std::atomic<bool> isRunning(true); // 标志变量,初始值为true
void threadFunction()
{
while (isRunning)
{
// 线程的主要逻辑
}
std::cout << "Thread safely exited!" << std::endl;
}
int main()
{
std::thread t(threadFunction); // 创建一个线程
// 判断线程是否在运行
if (isRunning)
{
std::cout << "Thread is running!" << std::endl;
}
// 安全退出线程
isRunning = false;
// 等待线程结束
t.join();
return 0;
}
在上面的示例代码中,线程函数threadFunction中使用一个循环来检测标志变量isRunning的值。当isRunning为false时,退出循环,线程安全退出。在主函数中,我们判断isRunning的值来判断线程是否在运行,并通过将isRunning设置为false来安全退出线程
原文地址: https://www.cveoy.top/t/topic/iVrO 著作权归作者所有。请勿转载和采集!