Learn the art of building intricate, modern, scalable concurrent applications using Scala
This book is a must-have tutorial for software developers aiming to write concurrent programs in Scala, or broaden their existing knowledge of concurrency.
This book is intended for Scala programmers that have no prior knowledge about concurrent programming, as well as those seeking to broaden their existing knowledge about concurrency. Basic knowledge of the Scala programming language will be helpful. Readers with a solid knowledge in another programming language, such as Java, should find this book easily accessible.
This book will give you an insight into the best practices necessary to build concurrent programs in Scala using modern, high-level concurrency libraries. It starts by introducing you to the foundations of concurrent programming on the JVM, outlining the basics of the Java Memory Model, and then shows some of the classic building blocks of concurrency, such as the atomic variables, thread pools, and concurrent data structures, along with the caveats of traditional concurrency. It then walks you through different high-level concurrency abstractions, each tailored toward a specific class of programming tasks. Finally, the book presents an overview of when to use which concurrency library and demonstrates how they all work together.
Chapter 1. Introduction
Chapter 2. Concurrency on the JVM and the Java Memory Model
Chapter 3. Traditional Building Blocks of Concurrency
Chapter 4. Asynchronous Programming with Futures and Promises
Chapter 5. Data-Parallel Collections
Chapter 6. Concurrent Programming with Reactive Extensions
Chapter 7. Software Transactional Memory
Chapter 8. Actors
Chapter 9. Concurrency in Practice