Usually, we first create a object of a class extending WP_Background_Processing class. Then we create a queue, save queue & dispatch queue.
Calling dispatch
method does two things
1. Schedule Healthcheck cron to run every 5 minutes. @see `schedule_cron_healthcheck`
2. Call Ajax request that processes queue.
Ajax Request's callback is maybe_handle
. @see WP_Background_Processing::maybe_handle();
This maybe_handle
terminates itself if any batch of respective background class is already in process.
So essentially, only one batch is allowed to execute at any point.