asio C++ library



Every asynchronous agent has an associated executor. An agent's executor determines how the agent's completion handlers are queued and ultimately run.

Example uses of executors include:

The asynchronous operations within an asynchronous agent use the agent's associated executor to:

Thus, an asynchronous agent's associated executor represents a policy of how, where, and when the agent should run, specified as a cross-cutting concern to the code that makes up the agent.

[5] In Asio, this kind of executor is called a strand.