Definitions
The following definitions and concepts are important to understanding the features of the Synchronization package.
• Synchronization—The use of mechanisms or processes whereby undesirable interleaving of operations or interference between concurrent threads is prevented. Synchronization is generally accomplished using one of two techniques: mutual exclusion or condition synchronization.
• Mutual exclusion—Combining fine-grained atomic actions into coarse-grained actions and arranging to make these composite actions atomic.
• Condition synchronization—A process or mechanism that delays the execution of a thread until the program state satisfies some predicate or condition.
• Blocked threads—A thread that is no longer executing because it is delayed or waiting on some synchronization mechanism.
• Unblocked threads—Once a thread is unblocked, awakened, or signaled, it becomes runnable and eligible for further execution. Not all synchronization mechanisms use blocking to delay a thread. Some mechanisms are implemented using polling loops or spin-locks.