gpt4 book ai didi

c++ - 通过C++中的多个线程监视具有读写访问权限的共享变量

转载 作者:行者123 更新时间:2023-12-01 15:12:50 25 4
gpt4 key购买 nike

我正在寻找以下代码段的更好实现,以最大程度地减少CPU使用率。我有一个对多个线程具有读/写访问权限的变量,需要按以下方式进行监视。

while(true){
mutex.lock();
int flag = external_flag;
mutex.unlock();
if(flag == 3){
break;
}else if (flag == 4){
go to label;
}
}

最佳答案

使用原子变量,因为它比成熟的互斥锁更快,并且可能无锁。例如std::atomic<int>std::atomic_flag,具体取决于您的工作。

但是,根据您在代码中实际执行的操作,可能需要使用诸如std::condition_variable之类的条件变量来避免旋转。

关于c++ - 通过C++中的多个线程监视具有读写访问权限的共享变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62413815/

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