[英]Monitoring a shared variable with read write access by multiple threads in C++
我正在尋找以下代碼段的更好實現,以最大限度地減少 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
)來避免旋轉。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.