PThreads Programming
A POSIX Standard for Better Multiprocessing
Publisher: O'Reilly Media
Released: September 1996
Pages: 286

Computers are just as busy as the rest of us nowadays. They have lots of tasks to do at once, and need some cleverness to get them all done at the same time.

That's why threads are seen more and more often as a new model for programming. Threads have been available for some time. The Mach operating system, the Distributed Computer Environment (DCE), and Windows NT all feature threads.

One advantage of most UNIX implementations, as well as DCE, is that they conform to a recently ratified POSIX standard (originally 1003.4a, now 1003.1c), which allows your programs to be portable between them. POSIX threads are commonly known as pthreads, after the word that starts all the names of the function calls. The standard is supported by Solaris, OSF/1, AIX, and several other UNIX-based operating systems.

The idea behind threads programming is to have multiple tasks running concurrently within the same program. They can share a single CPU as processes do, or take advantage of multiple CPUs when available. In either case, they provide a clean way to divide the tasks of a program while sharing data.

A window interface can read input on dozens of different buttons, each responsible for a separate task. A network server has to accept simultaneous calls from many clients, providing each with reasonable response time. A multiprocessor runs a number-crunching program on several CPUs at once, combining the results when all are done. All these kinds of applications can benefit from threads.

In this book you will learn not only what the pthread calls are, but when it is a good idea to use threads and how to make them efficient (which is the whole reason for using threads in the first place). The authors delves into performance issues, comparing threads to processes, contrasting kernel threads to user threads, and showing how to measure speed. He also describes in a simple, clear manner what all the advanced features are for, and how threads interact with the rest of the UNIX system.

Topics include:

  • Basic design techniques
  • Mutexes, conditions, and specialized synchronization techniques
  • Scheduling, priorities, and other real-time issues
  • Cancellation
  • UNIX libraries and re-entrant routines
  • Signals
  • Debugging tips
  • Measuring performance
  • Special considerations for the Distributed Computing Environment (DCE)
Table of Contents
Product Details
About the Author
Colophon
Recommended for You
Customer Reviews

REVIEW SNAPSHOT®

by PowerReviews
O'Reilly MediaPThreads Programming
 
2.5

(based on 2 reviews)

Ratings Distribution

  • 5 Stars

     

    (0)

  • 4 Stars

     

    (1)

  • 3 Stars

     

    (0)

  • 2 Stars

     

    (0)

  • 1 Stars

     

    (1)

Reviewed by 2 customers

Sort by

Displaying reviews 1-2

Back to top

(3 of 5 customers found this review helpful)

 
4.0

Great introduction, with some exceptions

By Chris S

from Grand Rapids, MI

About Me Sys Admin

Verified Reviewer

Pros

  • Accurate
  • Concise
  • Helpful examples
  • Well-written

Cons

  • Not comprehensive enough

Best Uses

  • Expert
  • Intermediate

Comments about O'Reilly Media PThreads Programming:

Let me preface this by saying this book was not written for someone who just learned their first Hello World program. It assumes you are a reasonably proficient C programmer already and want to learn Pthreads.

The book walks through all the major Pthreads topics in a style that focuses on how to transform your single threaded program into one that can take advantage of Pthreads. This might sound easy and straight forward. However, as is pointed out in the book, the process sometimes requires substantial redesign of your program and workflow. As the previous commenter found out, you can not bring your preconceived notion of how threaded programs work to Pthreads and expect the technology to compensate.

I'd like to give this book 5 stars but can't for three reasons:
1. The code examples are littered with typos. Any programmer worth his oats can debug them in just a few minutes; which is what the technical editor should have done before publishing the book.
2. I have the 2nd edition, which it seems they fixed some of the errors from #1, but also added more errors, and expanded the code examples to include some of the comments from the text. The text explains that some of the examples could be expanded for more functionality, performance, or other requirements; it would have been really nice if more of these expansions were included in the 2nd edition. Also, the text notes deficiencies in the code from the 1st edition; they were fixed for the 2nd edition, but the 2nd edition text was not changed to reflect this.
3. There is more than one place where the status of a thread is not explicitly spelled out by the text. Typically you can guess what the thread would be doing, but sometimes it is not obvious. This is again a place where a good C programmer will have insights and understanding that a beginner will not. The code examples include constructs to account for the various state artifacts, though without explanation.

I would still highly recommend this book for any semi-experienced programmer who wants to know more about Pthreads. I would not recommend this book alone for someone trying to learn C programming and Pthreads all at once.

(12 of 16 customers found this review helpful)

 
1.0

Pthreads Programming Review

By Sanjeev Patel

from Undisclosed

Comments about O'Reilly Media PThreads Programming:

The book was OK when I first read it. However, I think that it lacks necessary detail about thread synchronization. The mutex/condition variable example using inc_counter and watch_count wouldn't work. Frankly, I've found that there are a lot of problems one will run into if they try to develop an app after having read this book. No attempt is made to discuss what happens when a thread waiting on a condition variable doesn't get to run even though it has been signalled (using pthread_cond_signal). The gloss over of pipelining was particularly annoying to me since I really wanted to implement a working pipeline using pthreads, but haven't been able to due to the problem mentioned above. I could be missing something, but the point of the book is to ensure (at least on some level) that I'm not...

Displaying reviews 1-2

Back to top

 
Buy 2 Get 1 Free Free Shipping Guarantee
Buying Options
Immediate Access - Go Digital what's this?
Ebook: $31.99
Formats:  DAISY, ePub, Mobi, PDF
Print & Ebook: $43.99
Print: $39.99