Consider a fast food restaurant taking orders:
A simple, but low throughput method to handle orders is:
- Accept order from customer 1.
- Request order 1 to be made.
- Wait for order 1 to be completed.
- Give order 1 to customer 1.
- Accept order from customer 2.
- Request order 2 to be made.
- Wait for order 2 to be completed.
- Give order 2 to customer 2.
We can increase throughput of taking and completing orders through concurrency and parallelism.