Non-blocking Synchronization
Learn about non-blocking synchronization and thread-safe data structures that can be built using them.
We'll cover the following...
Introduction
Much of the performance improvements seen in classes such as Semaphore
and ConcurrentLinkedQueue
versus their synchronized equivalents come from the use of atomic variables and non-blocking synchronization. Non-blocking algorithms use machine-level atomic instructions such as compare-and-swap instead of locks to provide data integrity when multiple threads access shared resources. Non-blocking algorithms are harder to design and implement but out perform lock-based alternatives in terms of liveness and ...