Proactor pattern
Proactor is a software design pattern for event handling in which long running activities are running in an asynchronous part. A completion handler is called after the asynchronous part has terminated. The proactor pattern can be considered to be an asynchronous variant of the synchronous reactor pattern.[1]
Interaction

UML Sequence diagram of Proactor
Operation specific actors:
- The Proactive Initiator starts the asynchronous operation via the Asynchronous Operation Processor and defines the Completion Handler
- Completion Handler is a call at the end of the operation from the Asynchronous Operation Processor
- Asynchronous Operation
Standardized actors
- The Asynchronous Operation Processor controls the whole asynchronous operation
- The Completion Dispatcher handles the call, depending on the execution environment.
Implementations
gollark: Reducing moving parts is good I guess.
gollark: Maybe seed engineered viruses in the grass periodically to stop it growing.
gollark: I still feel like setting the grass on fire would be easier. I don't think lasers provide much of an advantage here if you want to actually cut it.
gollark: Evidently we need software to automatically replace potentially identifying information you reveal with randomized information instead.
gollark: Is it actually possible to make enough plutonium from the entire solar system's heavy metal stocks to noticeably affect its spectral lines?
See also
- Reactor pattern (a pattern that also asynchronously queues events, but demultiplexes and dispatches them synchronously)
References
- Pattern-Oriented Software Architecture, Volume 2, Schmidt et al., Jon Wiley & Sons, Ltd, 2000
External links
- Proactor - An Object Behavioral Pattern for Demultiplexing and Dispatching Handlers for Asynchronous Events, Irfan Pyarali, Tim Harrison, Douglas C. Schmidt, Thomas D. Jordan, 1997 (pdf 143 kB)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.