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.

Buy Now

Select a DRM-free Format:

In Stock
In Stock
In Stock
Buy the eBook and get these DRM-free formats delivered immediately:
  • epub (for iPhone/iPad, Android, eReaders)
  • mobi (for Kindle)
  • PDF
We can automatically send them to your Dropbox. (You'll need to log in to enable these options.)

About this Book

  • 280 pages
  • Published:
  • Release: P1.0 (2011-08-24)
  • ISBN: 978-1-93435-676-0

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

Full Table of Contents


  • 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

About the Author

Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., and an adjunct faculty at the University of Houston. He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences.

Comments and Reviews

  • There has been an explosion of interest and application for both new concurrency models and new languages on the JVM. Venkat’s book ties it all together and shows the working developer how to structure their application and get the most out of existing libraries, even if they were built in a different language. This book is the natural successor to Java Concurrency in Practice.

    —Alex Miller Architect/Senior Engineer Revelytix, Inc.
  • Extremely thorough coverage of a critically important topic.

    —Chris Richardson Author of "POJOS in Action" and Founder:
  • If the JVM is your platform of choice, then this book is an absolute must-read. Buy it, read it, and then buy a copy for all your team members. You will well be on your way to finding a good solution to concurrency issues.

    —Raju Gandhi Senior consultant Integrallis Software, LLC
  • An excellent book! Venkat skillfully leads us through the many design and implementation decisions that today’s JVM developer faces in multithreaded programming. His easy-to-read style and the many examples he provides—using a variety of current open source tools and JVM languages—make this complex topic very approachable.

    —Albert Scherer Manager eCommerce Technologies, Follett Higher Education Group, Inc.