In
software engineering
Software engineering is a systematic engineering approach to software development.
A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
, concurrency patterns are those types of
design patterns that deal with the
multi-threaded
In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system. The implementation of threads and processes dif ...
programming paradigm.
Examples of this class of patterns include:
*
Active Object
The active object design pattern decouples method execution from method invocation for objects that each reside in their own thread of control. The goal is to introduce concurrency, by using asynchronous method invocation and a scheduler for ha ...
*
Balking pattern
*
Barrier
A barrier or barricade is a physical structure which blocks or impedes something.
Barrier may also refer to:
Places
* Barrier, Kentucky, a community in the United States
* Barrier, Voerendaal, a place in the municipality of Voerendaal, Netherl ...
*
Double-checked locking In software engineering, double-checked locking (also known as "double-checked locking optimization") is a software design pattern used to reduce the overhead of acquiring a lock by testing the locking criterion (the "lock hint") before acquiring th ...
*
Guarded suspension
* Leaders/followers pattern
*
Monitor Object
*
Nuclear reaction
In nuclear physics and nuclear chemistry, a nuclear reaction is a process in which two nuclei, or a nucleus and an external subatomic particle, collide to produce one or more new nuclides. Thus, a nuclear reaction must cause a transformatio ...
*
Reactor pattern
The reactor design pattern is an event handling pattern for handling service requests delivered concurrently to a service handler by one or more inputs. The service handler then demultiplexes the incoming requests and dispatches them synchronou ...
*
Read write lock pattern
Read
Read may refer to:
* Reading, human cognitive process of decoding symbols in order to construct or derive meaning
* Read (automobile), an American car manufactured from 1913 to 1915
* Read (biology), an inferred sequence of base pairs of ...
*
Scheduler pattern
In computing, scheduling is the action of assigning ''resources'' to perform ''tasks''. The ''resources'' may be processors, network links or expansion cards. The ''tasks'' may be threads, processes or data flows.
The scheduling activity is c ...
*
Thread pool pattern
In computer programming, a thread pool is a software design pattern for achieving concurrency of execution in a computer program. Often also called a replicated workers or worker-crew model, a thread pool maintains multiple threads waiting for ...
*
Thread-local storage
Thread-local storage (TLS) is a computer programming method that uses static or global memory local to a thread.
While the use of global variables is generally discouraged in modern programming, legacy operating systems such as UNIX are designed ...
See also
*
Design Patterns
*
Behavioral pattern
In software engineering, behavioral design patterns are design patterns that identify common communication patterns among objects. By doing so, these patterns increase flexibility in carrying out communication.
Design patterns
Examples of this t ...
*
Creational pattern
In software engineering, creational design patterns are design patterns that deal with object creation mechanisms, trying to create objects in a manner suitable to the situation. The basic form of object creation could result in design problems or ...
*
Structural pattern In software engineering, structural design patterns are design patterns that ease the design by identifying a simple way to realize relationships among entities.
Examples of Structural Patterns include:
* Adapter pattern: 'adapts' one interface fo ...
References
External links
ScaleConf Presentation about concurrency patternsGopherCon Rethinking Classical Concurrency Patternsslides
GoWiki: Learn Concurrency
Recordings about concurrency patterns from Software Engineering Radio:
Episode 12: Concurrency Pt. 1
Episode 19: Concurrency Pt. 2
Episode 29: Concurrency Pt. 3
Concurrent computing
Software design patterns
Concurrency (computer science)
{{comp-sci-stub