Added description of Half-Sync/Half-Async pattern
This commit is contained in:
parent
013386459a
commit
5978bbee51
16
README.md
16
README.md
@ -72,6 +72,7 @@ Concurrency patterns are those types of design patterns that deal with the multi
|
||||
* [Double Checked Locking](#double-checked-locking)
|
||||
* [Thread Pool](#thread-pool)
|
||||
* [Async Method Invocation](#async-method-invocation)
|
||||
* [Half-Sync/Half-Async](#half-sync-half-async)
|
||||
|
||||
### Presentation Tier Patterns
|
||||
|
||||
@ -714,7 +715,22 @@ validation and for building to order
|
||||
* you want to orchestrate calls to multiple business services
|
||||
* you want to encapsulate service lookups and service calls
|
||||
|
||||
## <a name="half-sync-half-async">Half-Sync/Half-Async</a> [↑](#list-of-design-patterns)
|
||||
**Intent:** The Half-Sync/Half-Async pattern decouples synchronous I/O from asynchronous I/O in a system to simplify concurrent programming effort without degrading execution efficiency.
|
||||
|
||||

|
||||
|
||||
**Applicability:** Use Half-Sync/Half-Async pattern when
|
||||
* A system possesses following characteristics:
|
||||
* System must perform tasks in response to external events that occur asynchronously, like hardware interrupts in OS
|
||||
* It is inefficient to dedicate separate thread of control to perform synchronous I/O for each external source of event
|
||||
* The higher level tasks in the system can be simplified significantly if I/O is performed synchronously.
|
||||
* One or more tasks in a system must run in a single thread of control, while other tasks may benefit from multi-threading.
|
||||
|
||||
**Real world examples:**
|
||||
* [BSD Unix networking subsystem](http://www.cs.wustl.edu/~schmidt/PDF/PLoP-95.pdf)
|
||||
* [Real Time CORBA](http://www.omg.org/news/meetings/workshops/presentations/realtime2001/4-3_Pyarali_thread-pool.pdf)
|
||||
* [Android AsyncTask framework](http://developer.android.com/reference/android/os/AsyncTask.html)
|
||||
|
||||
# Frequently asked questions
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user