Only 4 left in stock (more on the way).
Ships from and sold by Gift-wrap available.
Concurrent Programming on... has been added to your Cart
+ CDN$ 6.49 shipping
Used: Good | Details
Condition: Used: Good
Comment: Buy with confidence. Excellent Customer Service & Return policy.Ships from USA. Please give between 2-5 week for delivery.
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

Concurrent Programming on Windows Paperback – Oct 28 2008

4.0 out of 5 stars 1 customer review

See all 4 formats and editions Hide other formats and editions
Amazon Price
New from Used from
Kindle Edition
"Please retry"
"Please retry"
CDN$ 80.99
CDN$ 80.99 CDN$ 58.69

Harry Potter and the Cursed Child
click to open popover

Special Offers and Product Promotions

  • You'll save an extra 5% on Books purchased from, now through July 29th. No code necessary, discount applied at checkout. Here's how (restrictions apply)

No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
Getting the download link through email is temporarily not available. Please check back later.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your mobile phone number.

Product Details

  • Paperback: 1008 pages
  • Publisher: Addison-Wesley Professional; 1 edition (Oct. 28 2008)
  • Language: English
  • ISBN-10: 032143482X
  • ISBN-13: 978-0321434821
  • Product Dimensions: 17.8 x 4.6 x 23.1 cm
  • Shipping Weight: 1.5 Kg
  • Average Customer Review: 4.0 out of 5 stars 1 customer review
  • Amazon Bestsellers Rank: #334,403 in Books (See Top 100 in Books)
  •  Would you like to update product info, give feedback on images, or tell us about a lower price?

  • See Complete Table of Contents

Product Description


“I have been fascinated with concurrency ever since I added threading support to the Common Language Runtime a decade ago. That’s also where I met Joe, who is a world expert on this topic. These days, concurrency is a first-order concern for practically all developers. Thank goodness for Joe’s book. It is a tour de force and I shall rely on it for many years to come.”

—Chris Brumme, Distinguished Engineer, Microsoft


“I first met Joe when we were both working with the Microsoft CLR team. At that time, we had several discussions about threading and it was apparent that he was as passionate about this subject as I was. Later, Joe transitioned to Microsoft’s Parallel Computing Platform team where a lot of his good ideas about threading could come to fruition. Most threading and concurrency books that I have come across contain information that is incorrect and explains how to solve contrived problems that good architecture would never get you into in the first place. Joe’s book is one of the very few books that I respect on the matter, and this respect comes from knowing Joe’s knowledge, experience, and his ability to explain concepts.”

—Jeffrey Richter, Wintellect


“There are few areas in computing that are as important, or shrouded in mystery, as concurrency. It’s not simple, and Duffy doesn’t claim to make it so—but armed with the right information and excellent advice, creating correct and highly scalable systems is at least possible. Every self-respecting Windows developer should read this book.”

—Jonathan Skeet, Software Engineer, Clearswift


“What I love about this book is that it is both comprehensive in its coverage of concurrency on the Windows platform, as well as very practical in its presentation of techniques immediately applicable to real-world software development. Joe’s book is a ‘must have’ resource for anyone building native or managed code Windows applications that leverage concurrency!”

—Steve Teixeira, Product Unit Manager, Parallel Computing Platform, Microsoft Corporation


“This book is a fabulous compendium of both theoretical knowledge and practical guidance on writing effective concurrent applications. Joe Duffy is not only a preeminent expert in the art of developing parallel applications for Windows, he’s also a true student of the art of writing. For this book, he has combined those two skill sets to create what deserves and is destined to be a long-standing classic in developers’ hands everywhere.”

—Stephen Toub, Program Manager Lead, Parallel Computing Platform, Microsoft


“As chip designers run out of ways to make the individual chip faster, they have moved towards adding parallel compute capacity instead. Consumer PCs with multiple cores are now commonplace. We are at an inflection point where improved performance will no longer come from faster chips but rather from our ability as software developers to exploit concurrency. Understanding the concepts of concurrent programming and how to write concurrent code has therefore become a crucial part of writing successful software. With Concurrent Programming on Windows, Joe Duffy has done a great job explaining concurrent concepts from the fundamentals through advanced techniques. The detailed descriptions of algorithms and their interaction with the underlying hardware turn a complicated subject into something very approachable. This book is the perfect companion to have at your side while writing concurrent software for Windows.”

—Jason Zander, General Manager, Visual Studio, Microsoft

About the Author

Joe Duffy is the development lead, architect, and founder of the Parallel Extensions to the .NET Framework team at Microsoft. In addition to hacking code and managing a team of developers, he works on long-term vision and incubation efforts, such as language and type system support for concurrency safety. He previously worked on the Common Language Runtime team. Joe blogs regularly at

See all Product Description

Customer Reviews

4.0 out of 5 stars
5 star
4 star
3 star
2 star
1 star
See the customer review
Share your thoughts with other customers

Top Customer Reviews

Format: Paperback Verified Purchase
the information is valuable and the global book's structure is very efficient.However, the written style is not the best as i' ve seen .
Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again.
Report abuse

Most Helpful Customer Reviews on (beta) HASH(0x9fbc3a8c) out of 5 stars 15 reviews
20 of 20 people found the following review helpful
HASH(0x9fbdb4ec) out of 5 stars One of the best books on the topic March 4 2009
By Oren Ellenbogen - Published on
Format: Paperback
I'll split my review into 3 parts:

Know what you get (book's goals): 4/10. The book is a bit "all over the place". It's hard to understand the intent of the book -- it's a bit too theoretical for a "pragmatic concurrent development" that it claims to be which makes the entire book a bit fuzzy and way too long. The problem with this kind of books that you usually can't read all (reading 800+ pages is too much for most people) and you're afraid of missing important parts.

Coverage: 9/10. This book is a great "ref" book in my bookshelf, it explains high level architecture to very deep bits&bytes usage in a very readable fashion. I've got a list of pages that I recommended every one of our developers to read, starting from basic things and dive into data structures, interesting pitfalls and solutions and specific tips & tricks that I found very interesting during my reading.

Relevance: 10/10. This is a must have book for windows developers (especially for .Net developers). It contains crucial basics with an amazing list of examples and best practices (need to be pulled out carefully, but it's there).

I'm still missing a well organized "common concurrent pitfalls & solutions" chapter for the pragmatic developers (assuming that the background exists).

All in all, I highly recommend this book! nice work!
56 of 66 people found the following review helpful
HASH(0x9fbdb540) out of 5 stars Disappointing Jan. 26 2009
By Winston Kodogo - Published on
Format: Paperback
I really wanted to like this book, but in the end I couldn't. It seems to me to be at least twice as long as it needs to be, extremely poorly and confusingly written, and a mish-mash of random odds and ends. I don't think the author has really worked out who his target audience is. Is it people who have a serious interest in the logic of concurrent programming - in which case you'd be better off reading the original papers by the likes of Dijkstra and Hoare, or the much much shorter book by Ben-Ari? Or is it aimed at people who want to write concurrent programs that work on Windows? In which case you'd be better off reading the much shorter book by Beveridge and Wiener.
Proof-reading and quality control is shoddy. For example, I have the distinct impression that at some point some-one has done a global replace of "task" with "thread" in the text, resulting in jibber-jabber such as "though it's highly unlikely that anybody reading this book will have to take on such a thread" on page 60, to cite one example out of several that I noticed.
9 of 11 people found the following review helpful
HASH(0xa0238558) out of 5 stars Right mix of theory and practice with lots of Win32, Vista, and .Net API Usage examples Dec 18 2008
By OnceMore - Published on
Format: Paperback
This book has just the right mix of theory and practical advice to help one learn how to write safe and reliable concurrent applications for the Windows Platform. It is organized into five parts. Part One consists of two introductory chapters on program state management concepts such as synchronization etc. Part Two discusses mechanisms available in the Windows Platform to support concurrent programming: from heavier-weight kernel objects such as Mutexes and Semaphores to lighter-weight and higher-level abstractions such as Monitors, Thread Pools, and Asynchronous Programming Models. Part Three delves into concurrency hazards (e.g., race conditions, deadlocks) to watch out for and data structures (e.g., parallel containers) and techniques that one can use for certain kinds of problems. Part Four culminates in detailed discussions of asynchronous mechanisms for dealing with potentially expensive I/O and GUI operations. Finally, Part Five consists of two appendices: The first appendix pulls together in one chapter all advice and recommendations mentioned in the book as well as additional guidelines for writing safe and reliable concurrent applications, and the second appendix briefly discusses the Parallel Extensions to .Net library. Although the author is more of a .Net expert, he gave roughly equal attention to Win32, Vista, and .Net APIs. The book provides a lot of code samples, which according to the author, would be available for download from the book's related website: [...] (as of Dec. 18, however, this has not happened). Overall, I think the book is very well written and explains a lot of difficult concepts very well.
2 of 2 people found the following review helpful
HASH(0x9fbdb7c8) out of 5 stars Excellent when errata is applied Nov. 25 2011
By Di Herbert Feichtinger - Published on
Format: Paperback Verified Purchase
This is a book every serious dev should read. I don't know about an alternative.
However, why did the publisher not correct the hundreds of errors found in the 2nd printing, now that the 4th printing is out?
=> read the errata before studying the book!
highly recommended.
HASH(0x9fbdb768) out of 5 stars Simply Amazing May 30 2015
By Joseph A. Francis - Published on
Format: Paperback
I have actually done this type of work on Windows for 22 years. While I understand that there are simpler methods for doing this type of work since the release of .NET 4.0, I have read and reread Joe Duffy's absolutely definitive reference on this topic many times.

The book is not for beginner developers, nor frankly for intermediate developers. If, however, you regard yourself as a professional computer scientist writing the most exacting server applications for Windows, this book is so far better than any other that there is no basis for comparison with another.

I rewrote the main set of Windows-to-mainframe integration libraries used by thousands of banks using this as a reference and doubled the speed and scalability of the libraries. I also wrote an application that completely replicated the functionality of a popular performance testing software suite with these techniques. Many thanks to Joe Duffy.