Coroutine
Going to learn this in CS343. Actually introduced in SE350.
Difference between Routine and Coroutine?
What differentiates a coroutine from a routine is that a coroutine can suspend its execution and return to the caller without terminating.
Coroutines are designed to be able to pass execution control back and forth between themselves.