Wikipedia: In computing, multitasking is a concept of performing multiple task (also known as processes) over a certain period of time by executing them concurrently. New tasks start and interrupt already started ones before they have reached completion, instead of executing the tasks sequentially so each started task needs to reach its end before a new one is started. As a result, a computer executes segments of multiple tasks in an interleaved manner, while the tasks share common processing resources such as central processing units (CPUs) and main memory.

Multitasking is also implemented in the Arduino Finite State Machine. It is possible to have more than one active state, but handled on a higher level then describes above. Multitasking is made on the user level instead of the operating system level (not implemented in the core, but in the sketch). It is possible to start additional states from an already running (or active) state bij calling "TransitionToState". All of the active states, act on there own and use the common resources of the board. The code of all active states are handled in every loop of the board. All actions to be executed in a certain state are processed before handling control to another active state. As a result; take care of the use of delay() and endless loops in the code of the active state.

press here for more information