gpt4 book ai didi

c++ - 线程之间的 bool 停止信号

转载 作者:行者123 更新时间:2023-12-01 14:03:30 24 4
gpt4 key购买 nike

通知后台线程停止执行的最简单方法是什么?
我用过类似的东西:

volatile bool Global_Stop = false;

void do_stuff() {
while (!Global_Stop) {
//...
}
}
这有什么问题吗?我知道对于复杂的情况,您可能需要“原子”或互斥锁,但对于 bool 信号,这应该可行,对吗?

最佳答案

std::atomic不适用于“复杂情况”。当您需要从多个线程访问某些内容时。关于volatile有一些神话, 我想不起来了,因为我只记得 volatile当您需要从不同线程访问某些内容时,它无济于事。您需要一个 std::atomic<bool> .是否在您的实际硬件上访问 bool是原子的并不重要,因为就 C++ 而言,它不是。

关于c++ - 线程之间的 bool 停止信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62830569/

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