Atomic describes an operation is indivisible: either it is either fully completed, or it hasn’t happened yet.

Atomic allows multiple threads to safely modify same data without data race. It is the main building block for concurrency. All other primitives like mutexes or condition variables are built using atomic operations.

Implementations