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 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 See also Design Patterns Behavioral pattern Creational pattern Structural pattern References External links ScaleConf Presentation about concurrency patterns GopherCon Rethinking Classical Concurrency Patterns slides 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)