We learned a lot in this chapter about working with independent blocks of code when concurrency is not allowed, managing and coordinating those using new techniques different from the ones offered by the
Thread class. Specifically, we covered:
- Developing applications applying innovative algorithms to generate portions from a huge piece, and using them to create very independent blocks of code to be run in multiple threads, thereby avoiding many classic concurrency problems
- Programming specific procedures for controlling the multiple threads's execution using flags, and avoiding locks
- Achieving an exhaustive control over asynchronous and synchronous execution, combining everything we had learned in the previous chapters
- Rebuilding results from ...