Introduction
Concurrency lets a program do many things at the same time. This helps it work faster and handle many tasks without waiting for one to finish before starting another.
When you want to download multiple files at once without waiting for each to finish.
When a program needs to listen for user input while also doing background work.
When you want to handle many users connecting to a server at the same time.
When you want to keep a program responsive while doing slow tasks like reading from disk.
When you want to split a big job into smaller parts that run together to finish faster.