Programming Concurrency on the JVM Mastering Synchronization STM and Actors 1st Edition by Venkat Subramaniam – Ebook PDF Instant Download/Delivery: 978-1934356760, 193435676X
Full download Programming Concurrency on the JVM Mastering Synchronization STM and Actors 1st Edition after payment

Product details:
ISBN 10: 193435676X
ISBN 13: 978-1934356760
Author: Venkat Subramaniam
More than ever, learning to program concurrency is critical to creating faster, responsive applications. Speedy and affordable multicore hardware is driving the demand for high-performing applications, and you can leverage the Java platform to bring these applications to life.
Concurrency on the Java platform has evolved, from the synchronization model of JDK to software transactional memory (STM) and actor-based concurrency. This book is the first to show you all these concurrency styles so you can compare and choose what works best for your applications. You’ll learn the benefits of each of these models, when and how to use them, and what their limitations are.
Through hands-on exercises, you’ll learn how to avoid shared mutable state and how to write good, elegant, explicit synchronization-free programs so you can create easy and safe concurrent applications. The techniques you learn in this book will take you from dreading concurrency to mastering and enjoying it. Best of all, you can work with Java or a JVM language of your choice – Clojure, JRuby, Groovy, or Scala – to reap the growing power of multicore hardware.
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.
Table of contents:
Chapter 1: The Power and Perils of Concurrency
Threads: The Flow of Execution
The Power of Concurrency
The Perils of Concurrency
Recap
Part 1: Strategies for Concurrency
Chapter 2: Division of Labor
From Sequential to Concurrent
Concurrency in IO-Intensive Apps
Speedup for the IO-Intensive App
Concurrency in Computationally Intensive Apps
Speedup for the Computationally Intensive App
Strategies for Effective Concurrency
Recap
Chapter 3: Design Approaches
Dealing with State
Exploring Design Options
Shared Mutable Design
Isolated Mutable Design
Purely Immutable Design
Persistent/Immutable Data Structures
Selecting a Design Approach
Recap
Part 2: Modern Java/JDK Concurrency
Chapter 4: Scalability and Thread Safety
Managing Threads with ExecutorService
Coordinating Threads
Exchanging Data
Java 7 Fork-Join API
Scalable Collections
Lock vs. Synchronized
Recap
Chapter 5: Taming Shared Mutability
Shared Mutability != public
Spotting Concurrency Issues
Preserve Invariant
Mind Your Resources
Ensure Visibility
Enhance Concurrency
Ensure Atomicity
Recap
Part 3: Software Transactional Memory
Chapter 6: Introduction to Software Transactional Memory
Synchronization Damns Concurrency
The Deficiency of the Object Model
Separation of Identity and State
Software Transactional Memory
Transactions in STM
Concurrency Using STM
Concurrency Using Akka/Multiverse STM
Creating Transactions
Creating Nested Transactions
Configuring Akka Transactions
Blocking Transactions-Sensible Wait
Commit and Rollback Events
Collections and Transactions
Dealing with the Write Skew Anomaly
Limitations of STM
Recap
Chapter 7: STM in Clojure, Groovy, Java, JRuby, and Scala
Clojure STM
Groovy Integration
Java Integration
JRuby Integration
Choices in Scala
Recap
Part 4: Actor-Based Concurrency
Chapter 8: Favoring Isolated Mutability
Isolating Mutability Using Actors
Actor Qualities
Creating Actors
Sending and Receiving Messages
Working with Multiple Actors
Coordinating Actors
Using Typed Actors
Typed Actors and Murmurs
Mixing Actors and STM
Using Transactors
Coordinating Typed Actors
Remote Actors
Limitations of the Actor-Based Model
Recap
Chapter 9: Actors in Groovy, Java, JRuby, and Scala
Actors in Groovy with GPars
Java Integration
JRuby As Integration
Choices in Scala
Recap
Part 5: Epilogue
Chapter 10: Zen of Programming Concurrency
Exercise Your Options
Concurrency: Programmer’s Guide
Concurrency: Architect’s Guide
Choose Wisely
Appendix 1: Clojure Agents
Appendix 2: Web Resources
Appendix 3: Bibliography
You May Be Interested In…
People also search for:
programming concurrency on the jvm
programming concurrency
mastering concurrency
mastering concurrency programming with java 8
mastering concurrency programming with java 8 source code
Tags: Venkat Subramaniam, Programming Concurrency, JVM Mastering Synchronization


