What actually happens in a single system is that event handling processes/tasks are interleaved. This means that at any point in execution, one task could stop then another run. There will be some indivisible (atomic) unit of execution that cannot be suspended. Without special software to allow the programmer to control when task pre-emption happens, this unit of execution can be at the level of a single instruction.