coroutines
Definition
Computer programs that can be suspended and resumed at will.
What is a coroutine exactly?
Coroutines are computer program components that generalize subroutines for non-preemptive multitasking, by allowing execution to be suspended and resumed. Coroutines are well-suited for implementing familiar program components such as cooperative tasks, exceptions, event loops, iterators, infinite lists and pipes.
More on source Wikipedia