Summary
In this chapter, we have focused on a theoretical notion of the use of threads. We have implemented the examples that had been proposed in the previous chapter, making use of the threading module and concurrent.futures. In this way, we illustrated the module's mechanisms and flexibility.
In the next chapter, we will focus on how to solve these two problems using multiprocessing and ProcessPoolExecutor.