ATOMIC_LONG_LOCK_FREE is a macro constant defined in the
<stdatomic.h> header file in the C11 standard.
ATOMIC_LONG_LOCK_FREE is relative to the types
unsigned long but has an additional atomic property. Reading or writing an atomic type happens as a single unit of work, and therefore atomic types are guaranteed to have no race conditions when accessed by multiple threads.
The macro takes on the value , , or depending on the lock-free property type:
To ensure concurrency, Lock-free programming is an alternative paradigm to mutex locks and binary semaphores. Instead of using locking mechanisms to block threads from accessing data, lock-free programming allows atomic operations on the data using a transactional memory model.
The transactional memory model bunches up a series of memory accesses and implements them at once as a transaction, similar to how transactions in databases work.
Lock-free programming is non-blocking, which allows lock-free programs to access shared resources without blocking other threads and avoiding race conditions. The non-blocking property of lock-free programming carries many performance advantages over mutex locks because concurrent access to resources is not blocked by other threads accessing the same data.
View all Courses