A situation in which a computer program or a hardware component such as the CPU, waits for a completion of a task by another program or component. The program or component is inactive for the whole duration of the wait, and its operation resumes once the other side has completed.

Probably the best known example is CPU wait states against RAM accesses. On some machines, the memory component completes its tasks in time periods that are much longer than the CPU cycle. This makes the CPU wait for memory reads and writes to finish before continuing execution (although advanced architectures use pipelines to optimize the CPU's operation despite the latency).