asynchronous programming
Writing code that can wait for many slow things at once without a thread for each.
Asynchronous code suspends a task at each await point while it waits for I/O, letting one thread run many tasks; it helps I/O-bound work, not CPU-bound work.
See also