Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

c

What is ATOMIC_INT_LOCK_FREE in C?

Abdul Monum

ATOMIC_INT_LOCK_FREE is a macro constant defined in the <stdatomic.h> header file in the C11 standard. ATOMIC_INT_LOCK_FREE is relative to the types int and unsigned int 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.

ATOMIC_INT_LOCK_FREE takes on the value 00, 11, or 22 depending on the lock-free property type:

  • 00 defines that the type is never lock-free
  • 11 defines that the type is sometimes lock-free
  • 22 defines that the type is always lock-free

Lock-free programming

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.

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.

RELATED TAGS

c

CONTRIBUTOR

Abdul Monum
Copyright ©2022 Educative, Inc. All rights reserved
RELATED COURSES

View all Courses

Keep Exploring