Execution and Callbacks
=======================

There are two components that control the execution of callbacks: **executors** and **callback groups**.

Executors are responsible for the actual execution of callbacks and should extend the :class:`.Executor` class.

Callback groups are used to enforce concurrency rules for callbacks and should extend the :class:`.CallbackGroup` class.

Executors
---------

.. automodule:: rclpy.executors


Callback Groups
---------------
.. automodule:: rclpy.callback_groups