首页 > 解决方案 > 通过 volatile 变量终止 C++ 中的工作线程

问题描述

对于工作线程,我使用以下“简单”逻辑

void App::RenderThreadFct()
{
    while(m_TerminateRenderThread == false){
        ...
    }
}

m_TerminateRenderThread一个易变的变量。
让我有点困惑的是在花哨的 C++ 文档中挖掘多线程的所有新特性,比如std::futurestd::promise天知道还有什么。
虽然所有这些都肯定有其合法性,但在我看来,要解决这样一个“简单”的问题,它们完全是矫枉过正。
但是互联网搜索完全让我感到困惑,因为他们只给了我那种在 C++ 中“正确”执行它的解决方案。
我是否遗漏了什么,有什么理由不应该在工作线程中检查一个简单的终止标志(这当然必须是易失的)?

标签: c++multithreading

解决方案


推荐阅读