Agents run their action/decision loops in parallel as fast as possible (or based on some asynchronous scheduling metric. Agents would acquire locks and block one another to perform sequentially restricted actions.