CodeFree/6_solution/memory_order/1_宽松顺序.cpp

32 lines
745 B
C++
Raw Normal View History

2024-12-26 13:57:27 +08:00
#include <vector>
#include <iostream>
#include <thread>
#include <atomic>
std::atomic<int> cnt = { 0 };
void f()
{
for (int n = 0; n < 1000; ++n) {
cnt.fetch_add(1, std::memory_order_relaxed);
}
}
int main()
{
std::vector<std::thread> v;
for (int n = 0; n < 10; ++n) {
v.emplace_back(f);
}
for (auto& t : v) {
t.join();
}
std::cout << "Final counter value is " << cnt << '\n';
}
/*
* memory_order_relaxed 访
*
*
*
*/