running multiple task simultaneously: establishing criteria that determine when a task is performed, synchronization among tasks to coordinate sharing, and allocation of computing resources
a technique that divides one task among many processors so that parts of the task are completed simultaneously.
when a processor executes more than one instruction at a time and works well with today's multi-core microprocessors