๐Ÿ“š Back to Bookshelf

alt text

Introduction

Threads are a fundamental part of the Java platform. As multicore processors become the norm, using concurrency effectively becomes essential for building high-performance applications. Java SE 5 and 6 are a huge step forward for the development of concurrent applications, with improvements to the Java Virtual Machine to support high-performance, highly scalable concurrent classes and a rich set of new concurrency building blocks. In Java Concurrency in Practice , the creators of these new facilities explain not only how they work and how to use them, but also the motivation and design patterns behind them.

However, developing, testing, and debugging multithreaded programs can still be very difficult; it is all too easy to create concurrent programs that appear to work, but fail when it matters most: in production, under heavy load. Java Concurrency in Practice arms readers with both the theoretical underpinnings and concrete techniques for building reliable, scalable, maintainable concurrent applications. Rather than simply offering an inventory of concurrency APIs and mechanisms, it provides design rules, patterns, and mental models that make it easier to build concurrent programs that are both correct and performant.

This book covers:

  • Basic concepts of concurrency and thread safety
  • Techniques for building and composing thread-safe classes
  • Using the concurrency building blocks in java.util.concurrent
  • Performance optimization dos and donโ€™ts
  • Testing concurrent programs
  • Advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model

Contents

Chapter 01: Introduction

Chapter 02: Thread Safety

Chapter 03: Sharing Objects

Chapter 04: Composing Objects

Chapter 05: Building Blocks

Chapter 06: Task Execution

Chapter 07: Cancellation and Shutdown

Chapter 08: Applying Thread Pools

Chapter 09: GUI Applications

Chapter 10: Avoiding Liveness Hazards

Chapter 11: Performance and Scalability

Chapter 12: Testing Concurrent Programs

Chapter 13: Explicit Locks

Chapter 14: Building Custom Synchronizers

Chapter 15: Atomic Variables and Nonblocking Synchronization

Chapter 16: The Java Memory Model

๐Ÿ“š Back to Bookshelf