AnyLogic supports synchronous, asynchronous, and mixed modeling. Asynchronous modeling means truly continuous time axis and ability to schedule events at arbitrary time moments and execute continuous processes such as System Dynamics ones. Synchronous modeling assumes discrete time steps and agents (and maybe environment) executing their actions synchronously at these time steps. While in most cases asynchronous models are closer to reality and also computationally more efficient (no "empty" steps are done), sometimes the problem is best solved with synchronized model (this is true for many academic models and for those real-world systems where decisions are made regularly at discrete time points, e.g. every day or every month).
You can implement synchronization "manually" or you may use AnyLogic services provided by environment and Agent constructs. The simplest manual implementation would be this: at the Main agent (or other agent container) you create a cyclic timeout event with timeout 1 and the following action code:
for( Person p : people )
where Person is the agent type of your agents, people is its replicated instance in Main, and step() is the function of the Person type.
Alternatively you can utilize AnyLogic built-in support for agent synchronization. Assume you have your agent type Person, defined environment at Main and specified that the agent population people belongs to the environment.
To add synchronization to your agent based model
The following execution order is guaranteed at the time moments 0, 1, 2, 3, ...:
Typically, the two phases of environment action are used to prepare the model for a step and to wrap up a step, e.g. update statistics. The two phases of agent action are used to collect information and to make and apply the decisions. For example, in the well-known Game of Life every cell would count the alive neighbor cells in On before step and change its state in On step.
By adding such synchronization you do not restrict the dynamics of your model with discrete time steps. Your agents as well as other objects are still able to schedule events, execute state transitions and run other processes - this will go in parallel with steps execution.