簡體   English   中英

幾個std :: atomic <T>上的條件

[英]condition on several std::atomic<T>

在我的多線程應用程序中,我有一個可以簡化為此示例的條件

std::atomic<bool> a, b;
// ...
if ( a.load() && b.load() )
{
   // ...
}

顯然,在條件之后,a和b可以保持不同的值。

在我的應用程序中,它認為,如果兩個值同時為真,則它們不能再次改變狀態。 但是在a.load()返回true ,即使在計算b.load()之前,它也可能會更改其值。

是否有一個優雅的解決方案來原子評估這個陳述? 顯然鎖定a.store(..)和b.store(..)的每個調用都可以在這里工作,但這遠非好。

您是否考慮過使用atomic<int> ,並為bool設置位? 這將允許您以原子方式查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM