Java Concurrency in Practice and over 360,000 other books are available for Amazon Kindle – Amazon’s new wireless reading device. Learn more

 

or
Sign in to turn on 1-Click ordering.
 
 
More Buying Choices
56 used & new from $31.79

Have one to sell? Sell yours here
 
   
Express Checkout with PayPhrase
What's this? | Create PayPhrase
Sorry!
Java Concurrency in Practice
 
 
Start reading Java Concurrency in Practice on your Kindle in under a minute.

Don’t have a Kindle? Get your Kindle here.
 
  

Java Concurrency in Practice (Paperback)

~ (Author), Tim Peierls (Author), Joshua Bloch (Author), Joseph Bowbeer (Author), David Holmes (Author), Doug Lea (Author) "Writing correct programs is hard; writing correct concurrent programs is harder..." (more)
Key Phrases: testing concurrent programs, composing objects, explicit locks, Building Blocks, Building Custom Synchronizers, Java Memory Model (more...)
4.8 out of 5 stars  See all reviews (60 customer reviews)

List Price: $59.99
Price: $37.79 & this item ships for FREE with Super Saver Shipping. Details
You Save: $22.20 (37%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.

Want it delivered Tuesday, November 10? Choose One-Day Shipping at checkout. Details
40 new from $32.78 16 used from $31.79

Formats

Amazon Price New from Used from
  Kindle Edition $28.79 -- --
  Paperback $37.79 $32.78 $31.79

Frequently Bought Together

Java Concurrency in Practice + Effective Java (2nd Edition) + Java(TM) Puzzlers: Traps, Pitfalls, and Corner Cases
Price For All Three: $107.57

Show availability and shipping details

  • This item: Java Concurrency in Practice by Brian Goetz

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • Effective Java (2nd Edition) by Joshua Bloch

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • Java(TM) Puzzlers: Traps, Pitfalls, and Corner Cases by Joshua Bloch

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details


Customers Who Bought This Item Also Bought

Java Generics and Collections

Java Generics and Collections

by Maurice Naftalin
4.6 out of 5 stars (23)  $23.09
Java(TM) Puzzlers: Traps, Pitfalls, and Corner Cases

Java(TM) Puzzlers: Traps, Pitfalls, and Corner Cases

by Joshua Bloch
4.5 out of 5 stars (30)  $36.75
Concurrent Programming in Java(TM): Design Principles and Pattern (2nd Edition)

Concurrent Programming in Java(TM): Design Principles and Pattern (2nd Edition)

by Doug Lea
3.9 out of 5 stars (48)  $41.46
Java Threads

Java Threads

by Scott Oaks
3.5 out of 5 stars (41)  $26.37
Spring Recipes: A Problem-Solution Approach (Books for Professionals by Professionals)

Spring Recipes: A Problem-Solution Approach (Books for Professionals by Professionals)

by Gary Mak
4.8 out of 5 stars (24)  $33.64
Explore similar items

Editorial Reviews

Product Description

"I was fortunate indeed to have worked with a fantastic team on the design and implementation of the concurrency features added to the Java platform in Java 5.0 and Java 6. Now this same team provides the best explanation yet of these new features, and of concurrency in general. Concurrency is no longer a subject for advanced users only. Every Java developer should read this book." --Martin Buchholz JDK Concurrency Czar, Sun Microsystems "For the past 30 years, computer performance has been driven by Moore's Law; from now on, it will be driven by Amdahl's Law. Writing code that effectively exploits multiple processors can be very challenging. Java Concurrency in Practice provides you with the concepts and techniques needed to write safe and scalable Java programs for today's--and tomorrow's--systems." --Doron Rajwan Research Scientist, Intel Corp "This is the book you need if you're writing--or designing, or debugging, or maintaining, or contemplating--multithreaded Java programs. If you've ever had to synchronize a method and you weren't sure why, you owe it to yourself and your users to read this book, cover to cover." --Ted Neward Author of Effective Enterprise Java "Brian addresses the fundamental issues and complexities of concurrency with uncommon clarity. This book is a must-read for anyone who uses threads and cares about performance." --Kirk Pepperdine CTO, JavaPerformanceTuning.com "This book covers a very deep and subtle topic in a very clear and concise way, making it the perfect Java Concurrency reference manual. Each page is filled with the problems (and solutions!) that programmers struggle with every day. Effectively exploiting concurrency is becoming more and more important now that Moore's Law is delivering more cores but not faster cores, and this book will show you how to do it." --Dr. Cliff Click Senior Software Engineer, Azul Systems "I have a strong interest in concurrency, and have probably written more thread deadlocks and made more synchronization mistakes than most programmers. Brian's book is the most readable on the topic of threading and concurrency in Java, and deals with this difficult subject with a wonderful hands-on approach. This is a book I am recommending to all my readers of The Java Specialists' Newsletter, because it is interesting, useful, and relevant to the problems facing Java developers today." --Dr. Heinz Kabutz The Java Specialists' Newsletter "I've focused a career on simplifying simple problems, but this book ambitiously and effectively works to simplify a complex but critical subject: concurrency. Java Concurrency in Practice is revolutionary in its approach, smooth and easy in style, and timely in its delivery--it's destined to be a very important book." --Bruce Tate Author of Beyond Java "Java Concurrency in Practice is an invaluable compilation of threading know-how for Java developers. I found reading this book intellectually exciting, in part because it is an excellent introduction to Java's concurrency API, but mostly because it captures in a thorough and accessible way expert knowledge on threading not easily found elsewhere." --Bill Venners Author of Inside the Java Virtual Machine 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


From the Back Cover

"I was fortunate indeed to have worked with a fantastic team on the design and implementation of the concurrency features added to the Java platform in Java 5.0 and Java 6. Now this same team provides the best explanation yet of these new features, and of concurrency in general. Concurrency is no longer a subject for advanced users only. Every Java developer should read this book."
--Martin Buchholz
JDK Concurrency Czar, Sun Microsystems

"For the past 30 years, computer performance has been driven by Moore's Law; from now on, it will be driven by Amdahl's Law. Writing code that effectively exploits multiple processors can be very challenging. Java Concurrency in Practice provides you with the concepts and techniques needed to write safe and scalable Java programs for today's--and tomorrow's--systems."
--Doron Rajwan
Research Scientist, Intel Corp

"This is the book you need if you're writing--or designing, or debugging, or maintaining, or contemplating--multithreaded Java programs. If you've ever had to synchronize a method and you weren't sure why, you owe it to yourself and your users to read this book, cover to cover."
--Ted Neward
Author of Effective Enterprise Java

"Brian addresses the fundamental issues and complexities of concurrency with uncommon clarity. This book is a must-read for anyone who uses threads and cares about performance."
--Kirk Pepperdine
CTO, JavaPerformanceTuning.com

"This book covers a very deep and subtle topic in a very clear and concise way, making it the perfect Java Concurrency reference manual. Each page is filled with the problems (and solutions!) that programmers struggle with every day. Effectively exploiting concurrency is becoming more and more important now that Moore's Law is delivering more cores but not faster cores, and this book will show you how to do it."
--Dr. Cliff Click
Senior Software Engineer, Azul Systems

"I have a strong interest in concurrency, and have probably written more thread deadlocks and made more synchronization mistakes than most programmers. Brian's book is the most readable on the topic of threading and concurrency in Java, and deals with this difficult subject with a wonderful hands-on approach. This is a book I am recommending to all my readers of The Java Specialists' Newsletter, because it is interesting, useful, and relevant to the problems facing Java developers today."
--Dr. Heinz Kabutz
The Java Specialists' Newsletter

"I've focused a career on simplifying simple problems, but this book ambitiously and effectively works to simplify a complex but critical subject: concurrency. Java Concurrency in Practice is revolutionary in its approach, smooth and easy in style, and timely in its delivery--it's destined to be a very important book."
--Bruce Tate
Author of Beyond Java

"Java Concurrency in Practice is an invaluable compilation of threading know-how for Java developers. I found reading this book intellectually exciting, in part because it is an excellent introduction to Java's concurrency API, but mostly because it captures in a thorough and accessible way expert knowledge on threading not easily found elsewhere."
--Bill Venners
Author of Inside the Java Virtual Machine

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



Product Details

  • Paperback: 384 pages
  • Publisher: Addison-Wesley Professional (May 19, 2006)
  • Language: English
  • ISBN-10: 0321349601
  • ISBN-13: 978-0321349606
  • Product Dimensions: 9.2 x 6.8 x 1.1 inches
  • Shipping Weight: 1.5 pounds (View shipping rates and policies)
  • Average Customer Review: 4.8 out of 5 stars  See all reviews (60 customer reviews)
  • Amazon.com Sales Rank: #9,256 in Books (See Bestsellers in Books)

    Popular in these categories: (What's this?)

    #8 in  Books > Computers & Internet > Programming > Java
    #32 in  Books > Computers & Internet > Programming > Languages & Tools
    #43 in  Books > Computers & Internet > Computer Science

More About the Author

Brian Goetz
Discover books, learn about writers, read author blogs, and more.

Visit Amazon's Brian Goetz Page

Inside This Book (learn more)

What Do Customers Ultimately Buy After Viewing This Item?

Java Concurrency in Practice
82% buy the item featured on this page:
Java Concurrency in Practice 4.8 out of 5 stars (60)
$37.79
Effective Java (2nd Edition)
12% buy
Effective Java (2nd Edition) 4.9 out of 5 stars (36)
$33.03
Head First Java, 2nd Edition
2% buy
Head First Java, 2nd Edition 4.4 out of 5 stars (250)
$29.67
Head First Design Patterns
2% buy
Head First Design Patterns 4.6 out of 5 stars (281)
$29.67

Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 
(55)

Your tags: Add your first tag
 

 

Customer Reviews

60 Reviews
5 star:
 (52)
4 star:
 (5)
3 star:
 (3)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.8 out of 5 stars (60 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

 
60 of 62 people found the following review helpful:
5.0 out of 5 stars The definitive book on concurrency in Java, May 28, 2006
By calvinnme "Texan refugee" (Fredericksburg, Va) - See all my reviews
(TOP 10 REVIEWER)      
Amazon Verified Purchase(What's this?)
Concurrency, in the form of threads, has been present in the Java language from its beginning, and this book is all about concurrency in the current and future versions of Java with an emphasis on writing practical code. This book does for concurrent programming in Java what Geary's series of books did for graphical Java - it moves concurrent Java programming out of the realm of applets containing bouncing balls and into that of providing real solutions for professional programmers.

This book is not meant to be an introduction to concurrency in Java. Its intention is to offer practical design rules to assist developers in the difficult process of creating safe, fast, and high-performance concurrent classes. While many of the general concepts in this book are applicable to versions of Java prior to Java 1.5, most of the code examples and all the statements about the Java Memory Model assume Java 1.5 or later. By "later" I mean that some of the code examples use library features added in the not-yet released Java 1.6. After the introduction, which consists of Chapter 1, the book is divided into four parts:

Part one, "Fundamentals", (Chapters 2-5) are about the basic concepts of concurrency, thread safety, and composing thread-safe classes from those concurrent building blocks provided by the Java language. Chapter 2, "Thread Safety", and 3, "Sharing Objects", include nearly all of the rules on avoiding concurrency hazards, constructing thread-safe classes, and verifying thread safety. Thus, these chapters emphasize theory and have less code than other chapters in the book. Chapter 4 , "Composing Objects", covers techniques for composing large thread-safe classes from smaller thread-safe classes. Chapter 5, "Building Blocks", covers thread-safe collections and synchronizers, which are the the concurrent building blocks provided by Java. To conclude the section, the authors work through the steps of building an efficient, scalable result cache that could be used in a web server. A summary of the most important rules presented in Part one occur at the end of the section.

Part two, "Structuring Concurrent Applications", describes how proper use of threading improves the throughput and responsiveness of concurrent applications. The topics covered in this section include identifying tasks that can be run in parallel and programming them as such, proper termination of tasks, using thread pools for greater efficiency in multi-threaded systems, and finally improving the responsiveness of single-threaded systems, GUI's being the most prominent example.

Part 3, "Liveness, Performance, and Testing" is concerned with ensuring that concurrent programs actually do what is expected of them and do so with acceptable performance. The authors describe how to avoid situations where a thread waits forever, also known as a "liveness failure". Also included in this section is an excellent explanation of the use of the "ThreadLocal" class and how it makes it much easier to manage the process of associating a thread with its per-thread data.

Part 4, "Advanced Topics", covers issues that will probably be interesting only to experienced developers. These topics include explicit locks, atomic variables, nonblocking algorithms, and developing custom synchronizers. Any of these techniques, explicit locks in particular, can cause chaos when done incorrectly. This book shows how to use these techniques safely and with confidence.

One of the things that makes this book so good are the many code examples. There are only snippets of entire programs included in the book itself in order to highlight the portions relevant to the concurrency issue being discussed. The code examples are either good examples, questionable examples, or bad code examples and are decorated with "Smiley Faces" that are either happy, concerned, or unhappy depending on the quality of the code. The full versions of the code examples, as well as supplementary examples and errata, are supposed to be available from the book's website. However, at the time I am writing this, they are not yet available.

Overall, I would say that this is the most complete and accessible resource on concurrency in Java I have seen in print. I highly recommend it.
Comment Comments (2) | Permalink | Was this review helpful to you? Yes No (Report this)



 
27 of 30 people found the following review helpful:
5.0 out of 5 stars Excellent coverage of Java multi-threading, June 2, 2006
By Kyrill Alyoshin (Toronto, Ontario Canada) - See all my reviews
(REAL NAME)   
The book is by far the best one on Java concurrency. There is really nothing out there that has such comprehensive coverage of this topic. Doug Lee's book is a bit theoretical and somewhat dry, but would be a nice complement to this book if you want to think some more about concurrency. This book has a very strong practical vector. Coverage of Java 5 concurrency features is very thorough. The book is extremely well-written, relatively easy to read.

The book stands on par with such established Java book jems as Josh Bloch's "Effective Java", Eckel's "Thinking in Java" and Rod Johnson's J2EE books.

All in all, this is a definite must have for any Java specialist.


Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
16 of 17 people found the following review helpful:
5.0 out of 5 stars At last! A readable, expert book on Java concurrency, August 7, 2006
Concurrency is hard and boring. Unfortunately, my favoured technique of ignoring it and hoping it will go away doesn't look like it's going to bear fruit. Fortunately, Java 5.0 introduced a new bunch of concurrency utilities, that work at a higher level of abstraction than marking blocks as synchronized and fields as volatile. Unfortunately, there haven't been that many books on the subject - even the good Java 5.0 books (e.g. Head First Java or Agile Java) make little mention of them - Thinking in Java being an honourable exception. Fortunately, JCIP is here, and it is authoritative stuff. And it's (mostly) very easy to understand. Plus, at 350 pages, it's not an enormous chore to slog through. It even covers changes to the upcoming Java 6.

Before tackling this book, you should have at least some idea of pre-Java 5.0 concurrency. You don't need to be a threading master, though, as the first part of the book covers basics like deadlock, atomicity and liveness. This was my favourite part of the book, as it comes with lots of small code snippets, both right and (horribly) wrong, and pithy design guidelines. It's rather like Effective Java in that respect - although the material on threading was probably the weakest part of that book, so this is a definite improvement.

The second part deals with thread pools, cancellation strategies, and GUIs. This is also excellent. Part three covers performance and testing. The last 75 pages are for advanced users and goes into a fair amount of low level detail (including a discussion of the Java Memory Model), which may be of interest to experts only.

I would be lying if I said that reading this book will demystify concurrency completely. Who wrote which bit of the book is unclear (although readers of Effective Java will probably spot parts of the text that seem rather Joshua Blochish), but while it's mostly very clear, some parts of the text are a little murkier than other. Perhaps this is to be expected given the subject matter. But for the most part it's surprisingly easy reading, and very practical to boot.

Let's face it, short of aliens landing and introducing a radically new way of computing, multicores are here for the medium term at least, so thread-dodging wimps such as myself will just have to get used to it. That being so, this book is going to be installed as one of the must-read books in the Java pantheon.
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)


Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews

5.0 out of 5 stars Avoid concurrency nightmare
This books guide yourself to develop concurrency programs in the right way, giving you advises what to do and what not to do. Read more
Published 5 days ago by Alvaro Gonzalez Fernandez

5.0 out of 5 stars Best Java Book on Threading
I recently bought this book from Amazon. Just finished Chapter 3. This book is full of real-life advice about designing and delivering Thread-safe classes. Read more
Published 5 months ago by Shridhar Upadhyaya

5.0 out of 5 stars Best concurrency book
This is definitely the best concurrency book for Java out there. It gives you pretty much all the concepts you ever need to know about concurrency in general. Read more
Published 5 months ago by Ryan W.

5.0 out of 5 stars I buy this book for every engineer that starts on my team.
This is the best book on java. If you are planning on using java as a real language for development, you should read this book before you write your first interface or draw your... Read more
Published 6 months ago by John Carrino

5.0 out of 5 stars Amazing introduction to multithreaded programming in Java
This book is a must read for anyone who works in multithreaded environment. Even if you don't create threads yourself but use application server or any other environment where... Read more
Published 7 months ago by Anne Mozolewski

5.0 out of 5 stars Concurrency In Practice
Excellent and timeless work that everyone should read if you are writing Java applications because all apps are now running on multi-processor systems due to progress in Dual/Quad... Read more
Published 9 months ago by D. S. Hustace

5.0 out of 5 stars you're not threadsafe
you can't just synchronize everything... and that's the point of this book. synchronizing is critical but most of us do it incorrectly without a thorough understanding of the... Read more
Published 11 months ago by Max Funderburk

5.0 out of 5 stars The definitive guide to concurrency with Java
Prior to this book, I spent many years trying to understand concurrency with Java, but I failed. During that time, I actually read four books. Read more
Published 11 months ago by Nader Aeinehchi

5.0 out of 5 stars This book build understanding in concurrency from ground up
This book is an essential resource for developer using the java.util.concurrency classes. It is written in a logical path that allows the reader to learn and understand not just... Read more
Published 11 months ago by Simon Reavely

5.0 out of 5 stars Superb book.
Having recently required to use Java in my work I needed a book to help explain the use of concurrency in Java. Read more
Published 12 months ago by Sam

Only search this product's reviews



Customer Discussions

This product's forum
Discussion Replies Latest Post
Java and OS 1 October 2008
This book is excellent, I highly recommend it. 0 November 2007
Bestselling title at JavaOne 2006 1 May 2007
Is there anything similar in .NET? 5 May 2007
Lea's 3rd Edition? 6 August 2006
Indian edition 3 June 2006
See all 6 discussions...  
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Discussion Replies Latest Post
Textbooks for Kindle DX? 61 21 hours ago
textbook scam 66 5 days ago
Amazon is a great place to buy textbooks! 35 17 days ago
Search Customer Discussions
   




Product Information from the Amapedia Community

Beta (What's this?)


Look for Similar Items by Category


Look for Similar Items by Subject

 

Feedback

If you need help or have a question for Customer Service, contact us.
 Would you like to update product info or give feedback on images?
Is there any other feedback you would like to provide?

Your comments can help make our site better for everyone.


Your Recent History

 (What's this?)

After viewing product detail pages or search results, look here to find an easy way to navigate back to pages you are interested in.