In this chapter, we have learned a lot of things. First of all, we refactored the code to be ready for further development that uses parallel guessing. We got acquainted with processes and threads, and we even mentioned fibers. After that, we looked at how Java implements threads and how to create code that runs on multiple threads. Additionally, we saw the different means that Java provides to programmers requiring parallel programs, starting threads, or just starting tasks in already existing threads.
Perhaps the most important part of this chapter that you should remember is the metaphor of bureaucrats and the different speeds. This is extremely important when you want to understand the performance of concurrent applications. I hope that this is a catchy picture, one that is easy to remember.
There was a huge topic about the different synchronization means that Java...