Programming Concurrency on the JVM
Mastering Synchronization, STM, and Actors
by: Venkat Subramaniam
Published | 2011-07-25 |
---|---|
Internal code | vspcon |
Print status | In Print |
Pages | 280 |
User level | Advanced |
Keywords | concurrency, Synchronization, STM, Actors, jvm, deadlock, livelock, multicore, Clojure, JRuby, Groovy, Scala |
Related titles | JRuby, Groovy, Erlang, Scala, and Clojure titles for language and concurrency. |
ISBN | 9781934356760 |
Other ISBN |
Channel epub: 9781680504309 Channel PDF: 9781680504316 Kindle: 9781937785154 Safari: 9781941222973 Kindle: 9781937785154 |
BISACs | COM051280 COMPUTERS / Programming Languages / JavaCOM048000 COMPUTERS / Systems Architecture / Distributed Systems & ComputingCOM048000 COMPUTERS / Systems Architecture / Distributed Systems & Computing |
Highlight
Stop dreading concurrency hassles and start reaping the pure power of modern multicore hardware. Learn how to avoid shared mutable state and how to write safe, elegant, explicit synchronization-free programs in Java or other JVM languages including Clojure, JRuby, Groovy, or Scala.
Description
Programming Concurrency on the JVM is the first book to show you three prominent concurrency styles: the synchronization model of the JDK, Software Transactional Memory (STM), and actor-based concurrency. You’ll learn the benefits of each of these models, when and how to use them, and what their limitations are so you can compare and choose what works best for your applications.
More than ever, learning to program using concurrency is critical to creating faster, responsive applications, and now you can leverage the Java platform to bring these applications to high-octane life. In this book, you’ll see how to:
- Painlessly develop correct concurrent programs
- Use modern, explicit synchronization-free concurrency solutions from pure Java
- Choose concurrency options separately from choosing an implementation language
- Gain the skills to master concurrency on the latest-generation hardware
Through hands-on exercises you’ll master these techniques in short order, and understand when and where to use them in your next killer app.
What You Need
If you are a Java programmer, you’d need JDK 1.5 or later and the Akka 1.0 library. In addition, if you program in Scala, Clojure, Groovy or JRuby you’d need the latest version of your preferred language. Groovy programmers will also need GPars.
Contents and Extracts
- The Power and Perils of Concurrency
- Strategies for Concurrency
- Division of Labor excerpt
- Design Approaches
- Modern Java/JDK Concurrency
- Scalability and Thread Safety
- Taming Shared Mutability excerpt
- Software Transactional Memory
- Introduction to Software Transactional Memory
- STM in Clojure, Groovy, Java, JRuby, and Scala
- Actor-Based Concurrency
- Favoring Isolated Mutability excerpt
- Actors in Groovy, Java, JRuby, and Scala
- Epilogue
- Zen of Programming Concurrency
- Clojure Agents
- Web Resources
- Bibliography