Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

Outline
layout title folder permalink pumlid categories tags
pattern
Half-Sync/Half-Async
half-sync-half-async
/patterns/half-sync-half-async/
RScv3SCm3030LU819FRPXg5fIm552tnYPFiyjRi3RkbAaYkdoQr5JBy369vrxz7oaSv6XmPhL3e6TCaJ0msU-CAoilTToyG8DdKOw5z0GzcAlvNAN_WZSD1brBHHPmxv0000
Concurrency
Java
Difficulty-Intermediate

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.

Half-Sync/Half-Async class diagram

Applicability

Use Half-Sync/Half-Async pattern when

  • a system possesses following characteristics:
    • the 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

Credits

Morty Proxy This is a proxified and sanitized view of the page, visit original site.