Programming Books C Java PHP Python Learn more Browse Programming Books
  • List Price: $69.99
  • Save: $17.50 (25%)
Usually ships within 1 to 2 months.
Ships from and sold by
Gift-wrap available.
Add to Cart
Used: Good | Details
Sold by apex_media
Condition: Used: Good
Comment: Ships direct from Amazon! Qualifies for Prime Shipping and FREE standard shipping for orders over $25. Overnight and 2 day shipping available!
Access codes and supplements are not guaranteed with used items.
Add to Cart
Trade in your item
Get a $22.76
Gift Card.
Have one to sell? Sell on Amazon
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

C++ Concurrency in Action: Practical Multithreading Paperback – February 28, 2012

ISBN-13: 860-1200915495 ISBN-10: 1933988770 Edition: 1st

Buy New
Price: $52.49
28 New from $45.61 10 Used from $44.43
Amazon Price New from Used from
"Please retry"
$45.61 $44.43


Frequently Bought Together

C++ Concurrency in Action: Practical Multithreading + The C++ Standard Library: A Tutorial and Reference (2nd Edition) + The C++ Programming Language, 4th Edition
Price for all three: $155.29

Some of these items ship sooner than the others.

Buy the selected items together


Save up to 90% on Textbooks
Rent textbooks, buy textbooks, or get up to 80% back when you sell us your books. Shop Now

Product Details

  • Paperback: 528 pages
  • Publisher: Manning Publications; 1 edition (February 28, 2012)
  • Language: English
  • ISBN-10: 1933988770
  • ISBN-13: 978-1933988771
  • Product Dimensions: 9.2 x 7.4 x 1.1 inches
  • Shipping Weight: 2 pounds (View shipping rates and policies)
  • Average Customer Review: 4.5 out of 5 stars  See all reviews (21 customer reviews)
  • Amazon Best Sellers Rank: #231,375 in Books (See Top 100 in Books)

Editorial Reviews

About the Author

Anthony Williams is a UK-based developer and consultant with many years experience in C++. He has been an active member of the BSI C++ Standards Panel since 2001, and is author or coauthor of many of the C++ Standards Committee papers that led up to the inclusion of the thread library in the new C++ Standard, known as C++11 or C++0x. He has been the maintainer of the Boost Thread library since 2006, and is the developer of the just::thread implementation of the C++11 thread library from Just Software Solutions Ltd. Anthony lives in the far west of Cornwall, England.

More About the Author

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

Customer Reviews

4.5 out of 5 stars
5 star
4 star
3 star
2 star
1 star
See all 21 customer reviews
I just finished reading this book--twice!
Scott Zimmerman
I'd definitively recommend this book for anyone who want to write multi-threaded applications in C++.
Bas Vodde
Well written, very descriptive and easy to follow.
Maksim Rayskiy

Most Helpful Customer Reviews

75 of 77 people found the following review helpful By Alexandros Gezerlis on March 8, 2012
Format: Paperback
"C++ Concurrency In Action: Practical Multithreading" by Anthony Williams is the first book to come out on multithreading and concurrency in the new C++. Williams is currently the primary developer and maintainer of the Boost.Thread library, a writer of many proposals for the C++11 thread library, and has for a while now provided (for a price) its first complete implementation (just::thread).

The Good: at long last C++ is thread-aware and this book shows the reader how to harness this newfound power. Williams starts out by introducing a number of thread-related concepts, like mutexes, condition variables, futures, promises, and atomics. This is an example-based book, so every new topic is fleshed out in code. Having introduced these concepts, the author goes on to apply them by designing lock-based concurrent data structures (a stack, a queue, a lookup table, and a linked list). Williams also shows how to use atomic operations to create lock-free stacks and queues. The book then examines more involved topics like thread pools (for which C++17 will probably have built-in support, though Williams doesn't venture a guess) and is rounded out by a welcome overview of how to identify deadlocks, livelocks, data races, and so on. Given the thematic breakup of the chapters, as well as the wealth of the material collected in the Appendices, this book will come in very handy as a reference. More specifically, Appendix B has a nice comparison of the new C++ multithreading facilities with Java threads, POSIX threads, and the Boost Thread library. Even better is Appendix D, a very useful 120-page reference of the C++11 thread library, which is more usable in digital form (as part of the ebook or the online version of the just::thread documentation).
Read more ›
4 Comments Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
11 of 12 people found the following review helpful By Scott Zimmerman on May 19, 2012
Format: Paperback Verified Purchase
I just finished reading this book--twice! The second half requires careful study to get the most out of it. This is really an OUTSTANDING piece of work. The writing is clear and all the code examples are precisely to the point. Virtually zero fluff in this entire book. You can only imagine how much work he put into designing and debugging the programs so that they are so clean. Well, I didn't notice any bugs in the code, but I didn't try to run them yet and his narrative shows that his attention to detail goes way beyond a quick code review.
Here are the things I liked most about this book: 1) it thoroughly uses C++11 features, including std::move, etc. 2) it's comphrehensive coverage of threading; and 3) it includes code and design discussion for a complete thread pool.
In my opinion there are only a few shortcomings: 1) The discussions of packaged_task, promise, spinlock, and fences/barries wasn't elaborate enough to help me really learn when/where to use these tools. Futures and async were covered thoroughly, but not these other topics. There was comment about spinlock unblocking the current thread that I didn't understand.
2) There are many places where the author/editor could have tied more narrative to the bullets in the code. That's a nifty feature of this book series, and it worked very well in this book, except that in some places it should have been done more. A couple of tricky lines of code had no comment, e.g. how the handle() function works in the message passing example. The chaining syntax is unusual and needs more explanation.
3) spinlock, and a few other topics, are not in the index.
4) It would be very helpful to see a brief example program that would report the relative performance of an analogous data structure class from the lock-based chapter vs. the lock-free chapter. This would give the reader a glimpse as to when the added complexity pays off.
I will keep this book for a long time :-)
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
12 of 14 people found the following review helpful By Bas Vodde on April 26, 2012
Format: Paperback
I was a reviewer for an early draft of this book. At that time, the new C++ standard was still called C++0x because... of course it would be published before 2010. It didn't. The author patiently waited finishing this book until the C++ standard was finished so that it is inline with the new C++11 standard.

The book described the new C++ threading standard library and how to use it. It assumes a fairly good understanding of C++ already, it isn't the first C++ book you want to pick up :P. I felt it was pretty well written and easy to understand, though I wasn't always comfortable with the authors programming style.

The book consists of ten chapters. The first five are chapters that introduce the basic concurrency classes in the new C++ standard: Threads, mutex, promises and more. Chapter 6-8 are about designing Concurrent C++ applications and I felt it was good that the book went further than just explaining the new library constructs. The last 2 chapters are a bit more advanced topics about thread management and testing.

As said, I enjoyed the book. It was well written and I wasn't familiar with everything from the latest C++ standard yet (Appendix gives an introduction to all the changes in the C++11 standard. I'd definitively recommend this book for anyone who want to write multi-threaded applications in C++. I know of no book that does a better job at this moment. 4 out of 5 stars as the book does an exceptionally good job at what it should do, yet it wasn't a WOW-insight book.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Customer Images

Most Recent Customer Reviews


What Other Items Do Customers Buy After Viewing This Item?