Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards



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 Boost.Asio, this kind of executor is called a strand.