gpt4 book ai didi

c++ - 两个线程使用同一个变量

转载 作者:太空狗 更新时间:2023-10-29 20:06:09 24 4
gpt4 key购买 nike

我有两个线程:'main' 和 'worker',还有一个全局变量 bool isQuitRequested 将被 main 线程用来通知 worker ,当它退出 while 循环的时候(像这样:while(isQuitRequested == false) { ... do some stuff ... })

现在,我有点担心...考虑到只有一个线程 (main) 执行 isQuitRequested = true 操作,我是否需要为 isQuitRequested 使用某种互斥保护,并且other (worker) 只执行检查而不执行其他操作?

我已阅读 What could happen if two threads access the same bool variable at the same time? .我是类似的东西,但情况不一样......

最佳答案

您没有指定您使用的是哪种语言,从您发布的小代码片段来看,它可能是 C#、Java 或 C++。以下是针对此“模式”的一些常见解决方案:

C#:

volatile bool isQuitRequested;

Java:

volatile boolean isQuitRequested;

C++:C++ 中的 volatile 几乎没那么有用。一起去:

std::atomic<bool> isQuitRequested;

关于c++ - 两个线程使用同一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9289849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com