Active object
|
Decouples method execution from the method invocation that resides in its own thread of control. The goal is to introduce concurrency using asynchronous method invocation and a scheduler to handle requests.
|
Balking
|
Only executes an action on an object when the object is in a particular state.
|
Binding properties
|
Combines multiple observers to force properties in different objects to be synchronized or coordinated in some way.
|
Block chain
|
A decentralized way to store data and agree on the ways to process it in a Merkle tree, optionally using a digital signature for any individual contributions.
|
Double-checked locking
|
Reduces the overhead of acquiring a lock by first testing the locking criterion (the lock hint) in an unsafe manner; only if that succeeds does the actual locking logic proceed.
Can be unsafe when implemented in some language/hardware combinations. It can, therefore, be considered an anti-pattern sometimes.
|
Event-based asynchronous
|
Addresses problems with the asynchronous pattern that occurs in multithreaded programs.
|
Guarded suspension
|
Manages operations that require both a lock to be acquired and a precondition to be satisfied before the operation can be executed.
|
Join
|
Provides a way to write concurrent, parallel, and distributed programs by passing messages. Compared to the use of threads and locks, this is a high-level programming model.
|
Lock
|
A thread puts a "lock" on a resource, preventing other threads from accessing or modifying it.
|
Messaging Design Pattern (MDP)
|
Allows the interchange of information (that is, messages) between components and applications.
|
Monitor object
|
An object whose methods are subject to mutual exclusion, thus preventing multiple objects from erroneously trying to use it at the same time.
|
Reactor
|
Provides an asynchronous interface to resources that must be handled synchronously.
|
Read-write lock
|
Allows concurrent read access to an object, but requires exclusive access for write operations.
|
Scheduler
|
Explicitly controls when threads may execute single-threaded code.
|
Thread pool
|
A number of threads are created to perform a number of tasks, which are usually organized in a queue. Typically, there are many more tasks than threads. Can be considered a special case of the object pool pattern.
|
Thread-specific storage
|
Static or "global" memory that is local to a thread.
|