Buy New

or
Sign in to turn on 1-Click ordering.
or
Amazon Prime free trial required. Sign up when you check out. Learn more
Buy Used
Used - Like New See details
Price: £39.37

or
Sign in to turn on 1-Click ordering.
 
   
More Buying Choices
Have one to sell? Sell yours here
Modern Multithreading: Implementing, Testing, and Debugging Multithreaded Java and C++/Pthreads/Win32 Programs
 
 
Tell the Publisher!
I’d like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Modern Multithreading: Implementing, Testing, and Debugging Multithreaded Java and C++/Pthreads/Win32 Programs [Paperback]

Richard H. Carver , Kuo-Chung Tai
3.0 out of 5 stars  See all reviews (1 customer review)
RRP: £61.50
Price: £58.43 & this item Delivered FREE in the UK with Super Saver Delivery. See details and conditions
You Save: £3.07 (5%)
  Special Offers Available
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.
Dispatched from and sold by Amazon.co.uk. Gift-wrap available.
Only 3 left in stock--order soon (more on the way).
Want guaranteed delivery by Friday, June 1? Choose Express delivery at checkout. See Details
Amazon.co.uk Trade-In Store
Did you know you can trade in your old books for an Amazon.co.uk Gift Card to spend on the things you want? Plus, get an extra £5 Gift Certificate when you trade in books worth £10 or more before June 30, 2012. Visit the Books Trade-In Store for more details.

Special Offers and Product Promotions

  • Jubilee offer: spend £10 or more on any product sold by Amazon.co.uk on or before June 6 and you can buy "The Diamond Jubilee - A Classical Celebration Album" for just £2.50. Here's how (terms and conditions apply)


Product details

  • Paperback: 480 pages
  • Publisher: Wiley-Blackwell (11 Nov 2005)
  • Language English
  • ISBN-10: 0471725048
  • ISBN-13: 978-0471725046
  • Product Dimensions: 23.4 x 17 x 2.3 cm
  • Average Customer Review: 3.0 out of 5 stars  See all reviews (1 customer review)
  • Amazon Bestsellers Rank: 865,413 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Author

Richard H. Carver
Discover books, learn about writers, and more.

Visit Amazon's Richard H. Carver Page

Product Description

Review

"…an excellent work on concurrent programming, examining languages and libraries for developing multithreaded programs." (CHOICE, April 2006)

Product Description

Master the essentials of concurrent programming,including testing and debugging

This textbook examines languages and libraries for multithreaded programming. Readers learn how to create threads in Java and C++, and develop essential concurrent programming and problem–solving skills. Moreover, the textbook sets itself apart from other comparable works by helping readers to become proficient in key testing and debugging techniques. Among the topics covered, readers are introduced to the relevant aspects of Java, the POSIX Pthreads library, and the Windows Win32 Applications Programming Interface.

The authors have developed and fine–tuned this book through the concurrent programming courses they have taught for the past twenty years. The material, which emphasizes practical tools and techniques to solve concurrent programming problems, includes original results from the authors′ research. Chapters include:
∗ Introduction to concurrent programming
∗ The critical section problem
∗ Semaphores and locks
∗ Monitors
∗ Message–passing
∗ Message–passing in distributed programs
∗ Testing and debugging concurrent programs

As an aid to both students and instructors, class libraries have been implemented to provide working examples of all the material that is covered. These libraries and the testing techniques they support can be used to assess student–written programs.

Each chapter includes exercises that build skills in program writing and help ensure that readers have mastered the chapter′s key concepts. The source code for all the listings in the text and for the synchronization libraries is also provided, as well as startup files and test cases for the exercises.

This textbook is designed for upper–level undergraduates and graduate students in computer science. With its abundance of practical material and inclusion of working code, coupled with an emphasis on testing and debugging, it is also a highly useful reference for practicing programmers.

Inside This Book (Learn More)
First Sentence
A concurrent program contains two or more threads that execute concurrently and work together to perform some task. Read the first page
Explore More
Concordance
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index | Back Cover
Search inside this book:

Tag this product

 (What's this?)
Think of a tag as a keyword or label you consider is strongly related to this product.
Tags will help all customers organise and find favourite items.
Your tags: Add your first tag
 

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Reviews

5 star
0
4 star
0
2 star
0
1 star
0
Most Helpful Customer Reviews
18 of 18 people found the following review helpful
By J. S. Hardman TOP 1000 REVIEWER VINE™ VOICE
Format:Paperback|Amazon Verified Purchase
I bought this book because of the "Testing and Debugging" in the sub-title as this is an area that other books on multi-threading tend to skip.

About the book - four negatives first, but do read the positives afterwards as well as they are big positives...

The first thing that hit me (and this is the least significant, but one for the publisher to be aware of) when reading this book was how old-fashioned it looks. For a book called "Modern Multithreading" you would think that Wiley (the publishers) would have presented the book better. The drab brown cover doesn't really matter, but the formatting of the text inside does. Source listings are shown in the same typeface as surrounding text, with no border etc to differentiate them. Worse is that if the text refers to a listing, the listing is likely to be on the next page wrapped in text about something else. The whole presentation is really poor.

The second thing that hit me, which is more significant, is that the authors simply do not write well. There can be no doubt that the authors are academics and that this book is a text book - it is not an easy read (because of writing style, not difficulty of content) and comes across as being a bound version of all of the photocopied hand-outs that you can imagine being given out at lectures during a computer science degree course. If you think of hand-outs as being notes that are typed up to support what was said during the lectures then you can imagine how they read. Put over 400 pages of them together and you get a feel for this book. Terse (but worth persevering).

The third negative, is that the code samples are described by the authors as a library, but they are not seriously useable as such. Maybe we've been spoilt by some of the excellent C++ and Java books that have been produced over recent years, but it has become common to be able to lift useful bits of code from books and reuse them without change. The code in this book is not like that. Good for research but not for serious use without being reworked. I have downloaded the full source code from the author's web-site (it doesn't all appear in the book) and found that for serious use it (a) needs some bugs fixed, (b) needs better error handling, (c) need optimising, (d) needs general reworking (it wouldn't pass code review the way it stands).

Fourthly, the index is incomplete and there is not a glossary. Why is this a problem? Well, given how difficult a read this is you can imagine how easy it is to glaze over. I clearly did that somewhere as I missed the meaning of an abbreviation that was then used repeatedly later on. I must had seen that same abbreviation used half a dozen times before thinking that I really should find out what it means as it seemed to be getting increasingly significant. I looked for a glossary but there isn't one included. I looked in the index to find the first page the abbreviation was used. Unfortunately the index didn't list the first page it was used, so I ended up scanning all the way from the start of the book to find the meaning. I'm very glad to have found it, because the moment I did the whole intention of the book started falling into place (although that wasn't confirmed until more than 140 pages in - see below).

Now for the plus points - well, one anyway...

This book covers something I have never seen any other book attempt to do. Most books say something along the lines of "multi-threading is hard, testing and debugging multi-threaded programs is really difficult and we're not going to give you any advice about how to do it". Well not this book. You may need to get more than 140 pages into the book before it reaches the really interesting ideas, but this book attempts to explain how to trace the interactions between different threads and to provide a way of replaying the same sequence in order to test/debug problems. As well as that it gives methods that will help to identify race conditions and deadlocks (where most books describe what they are and then go no further). Given that pre-emptive multi-threading gives you a system that is inherently non-deterministic, to attempt to provide repeatability by building a layer over the usual synchronisation mechanisms is a really interesting idea. It slows your code down so you don't want to put it into production code (another change required to the code), but during development it could be really handy. It doesn't give you a completely deterministic system, but helps to make the main interactions between threads more repeatable.

So to summarise - a couple of very interesting ideas that are incredibly badly presented, but given that I have never seen any other book try to describe the same material I'm afraid that there is no better book to recommend (please tell me if there is!). I've started using the ideas presented in this book in my own code, fixing/enhancing the code from the book in the process. Given that getting this code into a "professional" condition is a non-trivial task, that should give an idea of how useful I think the ideas are. Its taken a couple of weeks to integrate into my own threading library, but tracing, race condition detection and deadlock detection are working, though the deadlock detection mechanism is pretty primitive - I may do further work on that to make it more useful. Although I have coded the replay mechanism I haven't tested that yet - will update this review with the result when I have time to test it.

If you are new to multi-threading buy something easier to read as a tutorial, but if you already have good multi-threading experience and want to build your own framework combine the material from this book, with ideas from "Programming with Hyper-Threading Technology" and (for Windows) details from "Programming Applications in Microsoft Windows".

[Note added April 2009] Intel sell a tool called Intel ThreadChecker which does detection of race conditions very successfully. Rather than add extra complexity in your own code to check for such issues, you may prefer to simply use ThreadChecker.
Comment | 
Was this review helpful to you?
Most Helpful Customer Reviews on Amazon.com (beta)
Amazon.com:  7 reviews
8 of 10 people found the following review helpful
You will be better served elsewhere 28 April 2008
By Indikos - Published on Amazon.com
Format:Paperback
As a Java engineer, I cannot really recommend this book. While the authors are definitely knowledgeable about their subject, they do not do a good job in communicating their knowledge to a reader. The book reads like a doctoral thesis, poorly organized, not well laid out. Brian Goetz book on Concurrency is a much better book.
1 of 1 people found the following review helpful
Subject are not presented well 17 Jun 2008
By Cumhur Guzel - Published on Amazon.com
Format:Paperback
Even though title suggests it is 'modern multithreading', this book reiterates typical multithreading issues. However subjects addressed are not presented well enough and code snippets are not explained properly.
5 of 8 people found the following review helpful
Like a grad. level paper: Helpful, if you can read it. 5 Oct 2006
By P. E. Chaintreuil - Published on Amazon.com
Format:Paperback|Amazon Verified Purchase
I got this book hoping for helpful ideas on how to debug multithreaded programs. This book has them, but the writing isn't that clear or readable. It reads like a grad. level paper more than a standard technical book that most of us are used to.

The book lightly covers standard multithreading concepts and objects, but you're better off learning those someplace else because I'm sure it's explained in more "laymen" terms elsewhere. The one thing this book does do well is offer a way for you to write mutexes, semaphores, monitors, etc. in a way that would allow you to replay a given run of a multithreaded program (assuming you also can reproduce the input to said program somehow). If you know how to debug a single threaded application, this ability makes it easier to debug a multithreaded program. (As things become determisitic.)

However, if you already have a program that you're trying to debug, you end up out of luck, unless you want to port your program to use these new libraries.

Also note that all the examples in this book are for C++ or Java. C doesn't have the object-oriented abilities that would be needed to easily use the examples.
Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 

Search Customer Discussions
Search all Amazon discussions
   


Listmania!

Create a Listmania! list

Look for similar items by category


Look for similar items by subject


Feedback


Amazon.co.uk Privacy Statement Amazon.co.uk Delivery Information Amazon.co.uk Returns & Exchanges