我發現下面的代碼,該出把永遠是: std::atomic<A> is lock free? false
std::atomic<B> is lock free? true
這是代碼: struct A { int a[100]; };
struct B { int x, y; };
int main()
{
std::cout << std::boolalpha
考慮我有兩個原子布爾值如下。 private:
std::atomic_bool x;
std::atomic_bool y;
可以說下面的操作是原子的嗎?還是必須使用lock_guard才能確保將它們分配在一起? x = y = true; // are two bools assigned together atomically?
也考慮在另一個線程我想讀這些布爾值