Multithreading is a long-standing practice in software engineering. It's an extremely powerful approach that's used in almost all applications. We need separate threads to keep the user interface responsive when we invoke a long-term job like an input-output request. You should understand what multithreading is and what you can achieve with this technique.
In this chapter, we will cover the following topics:
- Concurrency and parallelism
- Reactive programming
- Coroutines