In software engineering, concurrency patterns are those types of design patterns that deal with the multi-threaded programming paradigm. Examples of this class of patterns include:
Active Object[1][2]
Balking pattern
Barrier
Double-checked locking
Guarded suspension
Leaders/followers pattern
Monitor Object
Nuclear reaction
Reactor pattern
Read write lock pattern
Scheduler pattern
Thread pool pattern
Thread-local storage