featureNonlocking
FeatureNonlocking describes a class of software design choices that aim to perform operations without acquiring locks on shared data, thereby avoiding blocking and reducing contention under concurrent access. The core idea is to use non-blocking synchronization techniques such as atomic operations, compare-and-swap (CAS), or lock-free and wait-free data structures to maintain correctness without holding a mutex.
This approach is common in multithreaded libraries, real-time systems, high-throughput services, and user interfaces where latency
Trade-offs include higher design and verification complexity, potential livelock or liveliness issues, and sometimes higher CPU
Examples include non-blocking queues, atomic counters, and lock-free stacks. Software transactional memory can provide nonblocking semantics