Search⌘ K
AI Features

CppMem: Atomics with a Relaxed Semantic

Learn to analyze relaxed atomic operations in C++ concurrency with CppMem. Understand how atomicity is guaranteed without synchronization or ordering, and explore the impact on thread interleaving and possible variable values through practical examples and graph visualizations.

We'll cover the following...

With the relaxed semantic, we don’t have synchronization or ordering constraints on atomic ...

C++
// ongoingOptimisationRelaxedSemantic.cpp
#include <atomic>
#include <iostream>
#include <thread>
std::atomic<int> x{0};
std::atomic<int> y{0};
void writing(){
x.store(2000, std::memory_order_relaxed);
y.store(11, std::memory_order_relaxed);
}
void reading(){
std::cout << y.load(std::memory_order_relaxed) << " ";
std::cout << x.load(std::memory_order_relaxed) << std::endl;
}
int main(){
std::thread thread1(writing);
std::thread thread2(reading);
thread1.join();
thread2.join();
};

For the ...