Recommended Reading: 'Seven Concurrency Models'
Your software needs to leverage multiple cores, handle thousands of users and terabytes of data, and continue working in the face of both hardware and software failure. Concurrency and parallelism are the keys: "Seven Concurrency Models in Seven Weeks: When Threads Unravel" (Pragmatic Bookshelf, $38 paper, $25 ebook) equips you for this.
In the book you'll see how technologies such as actors and functional programming address issues with traditional threads and locks development. You'll learn how to exploit the parallelism in your computer's GPU and leverage clusters of machines with MapReduce and Stream Processing.
In "Seven Concurrency Models in Seven Weeks: When Threads Unravel,' author Paul Butcher talks about the perils of traditional threads and locks programming and how to overcome them through careful design and by working with the standard library. You'll see how actors enable software running on geographically distributed computers to collaborate, handle failure, and create systems that stay up around the clock.
There's a look at why shared mutable state is the enemy of robust concurrent code and at how functional programming together with technologies such as Software Transactional Memory (STM) and automatic parallelism help you tame it. "Seven Concurrency Models in Seven Weeks: When Threads Unravel" shows you how to use MapReduce to harness massive clusters to solve previously intractable problems, and how, in concert with Stream Processing, big data can be tamed.
Butcher has worked in diverse fields at all levels of abstraction, from microcode on bit-slice processors to high-level declarative programming, and all points in between. His experience comes from working for startups. Butcher is also the author of "Debug It!."