# Concurrency pattern

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Concurrency_pattern
> Markdown URL: https://mediated.wiki/source/Concurrency_pattern.md
> Source: https://en.wikipedia.org/wiki/Concurrency_pattern
> Source revision: 1334241304
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Short description|Software design pattern}}
A '''concurrency pattern''' is a [software  design pattern](/source/software_design_pattern) that supports [concurrent processing](/source/Concurrency_(computer_science)).

==Examples==
Examples include:

* [Active object](/source/Active_object)<ref>[Douglas C. Schmidt](/source/Douglas_C._Schmidt), Michael Stal, Hans Rohnert, Frank Buschmann "Pattern-Oriented Software Architecture, Volume 2, Patterns for Concurrent and Networked Objects", Wiley, 2000</ref><ref>{{cite web |author=R. Greg Lavender, Douglas C. Schmidt |year=1995 |title=Active Object |url=http://www.cs.wustl.edu/~schmidt/PDF/Act-Obj.pdf |url-status=dead |archive-url=https://web.archive.org/web/20100615214451/http://www.cs.wustl.edu/~schmidt/PDF/Act-Obj.pdf |archive-date=2010-06-15 |accessdate=2010-06-17}}</ref>
* [Balking pattern](/source/Balking_pattern)
* [Barrier](/source/Barrier_(computer_science))
* [Double-checked locking](/source/Double-checked_locking)
* [Guarded suspension](/source/Guarded_suspension)
* [Monitor object](/source/Monitor_(synchronization))
* [Nuclear reaction](/source/Nuclear_computation)
* [Reactor pattern](/source/Reactor_pattern)
* [Readers–writer lock](/source/Readers%E2%80%93writer_lock)
* [Scheduler pattern](/source/Scheduler_pattern)
* [Thread pool pattern](/source/Thread_pool_pattern)
* [Thread-local storage](/source/Thread-local_storage)

== See also ==
* [Behavioral pattern](/source/Behavioral_pattern)
* [Creational pattern](/source/Creational_pattern)
* ''[Design Patterns](/source/Design_Patterns)''
* [Structural pattern](/source/Structural_pattern)

== References ==
{{Reflist}}

== External links ==
* [http://shairosenfeld.com/concurrency.html ScaleConf Presentation about concurrency patterns]
* [https://www.youtube.com/watch?v=5zXAHh5tJqQ GopherCon Rethinking Classical Concurrency Patterns] [https://www.scribd.com/document/419772234/Rethinking-Classical-Concurrency-Patterns slides]
* [https://github.com/golang/go/wiki/LearnConcurrency GoWiki: Learn Concurrency]

[Recordings](/source/Sound_recording_and_reproduction) about concurrency patterns from Software Engineering Radio:
* [http://www.se-radio.net/2006/04/episode-12-concurrency-pt-1/ Episode 12: Concurrency Pt. 1]
* [http://www.se-radio.net/2006/06/episode-19-concurrency-pt-2/ Episode 19: Concurrency Pt. 2]
* [http://www.se-radio.net/2006/09/episode-29-concurrency-pt-3/ Episode 29: Concurrency Pt. 3]

{{Design Patterns patterns}}
Category:Concurrent computing
Category:Software design patterns
Category:Concurrency (computer science)
{{comp-sci-stub}}

---
Adapted from the Wikipedia article [Concurrency pattern](https://en.wikipedia.org/wiki/Concurrency_pattern) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Concurrency_pattern?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
