Summary
Having seen the technical details of a variety of different concurrency libraries in the preceding chapters, we took a couple of steps back and presented a more cohesive view of Scala concurrency. After presenting a taxonomy of different styles of concurrency, we outlined the use cases for different concurrency frameworks. We then studied how to debug concurrent programs and analyze their performance. Finally, we combined the different concurrency frameworks together to implement a real-world distributed application: a remote file browser.
The best theory is inspired by practice, and the best practice is inspired by theory. This book has given you a fair amount of both. To deepen your understanding of concurrent computing, consider studying the references listed at the end of each chapter: you should already be able to grasp most of them. Importantly, to improve your practical concurrent programming skills, try to solve the exercises from this book. Finally, start building your own...