Have one to sell? Sell yours here
Programming With Threads
 
See larger image
 
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.

Programming With Threads [Paperback]

Steve Kleiman (Author), Devang Shah (Author), Bart Smaalders (Author)
5.0 out of 5 stars  See all reviews (5 customer reviews)


Available from these sellers.


Textbook Student FREE Two-Day Shipping for Students. Learn more


Book Description

0131723898 978-0131723894 January 23, 1996 1st
This practical guide to developing multithreaded programs on UNIX, concentrates on when and how to apply threads, what problems to expect and how to deal with them. It covers advanced interfaces appropriate to performance-critical situations, explores the use of threads, and the construction of correct MT programs and libraries. The text also includes a variety of multithreading examples.


Editorial Reviews

From the Publisher

A thread is an independent sequence of execution of program code inside a UNIX process.The book describes the primary facilities for implementing multithreaded applications and offers the programmer practical guidance in using these facilities.

From the Inside Flap

Threads are a new and powerful tool. As with most powerful tools, programmers must apply threads with discretion lest they do more harm than good. Part of the art of good multithreaded programming is knowing when not to use threads. Keep in mind that UNIX has gotten along for many years without them. The real impetus toward using threads has been the increasing popularity of multiprocessors and client-server computing. Typically, programs are expected to handle many requests simultaneously in these situations.

This book is for programmers interested in a practical guide to developing multithreaded programs. This book concentrates on teaching when and how to apply threads, what problems to expect and how to deal with them. It covers concurrency theory relatively lightly as there are many other books and papers that do better justice to the topic. This book also can be used as reference for the practicing threads programmer.

We assume that you are generally familiar with both UNIX programming concepts and the C programming language. It will be helpful if you have some experience with asynchronous programming using signal handlers or with programs that respond to multiple events, such as window or network programs.

This book is designed to be a general guide to programming with threads, not a tutorial on a specific set of interfaces. The two main UNIX threads interfaces are the IEEE Portable Operating System Interface (POSIX) standard P1003.1c (also called "Pthreads" and ISO/IEC 9945-1:1990c) and the UNIX International (UI) threads standard (see Appendix\x11B, "UNIX International Threads"). Both have the same basic model of threads, though the actual function definitions tend to use different styles. The coding examples in this book use the thread and operating system interfaces specified by the POSIX standards.

The POSIX thread standard specifies the threads application programming interfaces and the ways in which the other POSIX interfaces behave with respect to threads. In practice, threads programming also involves using other, non-standard aspects of the threads programming environment such as debuggers, performance tools, and non-standard libraries. In addition, effective threads programming requires some knowledge of the potential ways that the interfaces may be implemented within the standard. This book explains some of the tools available in the threads programming environment and some of the potential threads implementation strategies. In-depth examples of tools and implementation strategies are taken from the SolarisTM programming environment from Sun Microsystems.

In many cases, a threads programmer will be asked to convert existing applications and libraries to be multithreaded. This book covers potential approaches to threading existing code.

Using This Book

The chapters in this book are grouped into sections that can be skipped or skimmed depending on your interests.

Introduction

This section introduces the basic thread interfaces, thread creation, thread synchronization, libraries, and how threads interact with the UNIX process model. It covers some techniques for applying threads and constructing correct multithreaded programs. After reading this section, you should be able to construct useful multithreaded programs.

Chapter 1, "Introduction to Threads"

Chapter 2, "Getting Started"

Chapter 3, "Synchronization"

Chapter 4, "Using Libraries in Multithreaded Programs"

Chapter 5, "Threads and Process Resources"

Chapter 6, "Synchronization Strategies"

Chapter 7, "Using Threads"

Programmers who are already familiar with general thread concepts can simply browse this section to become familiar with the POSIX interfaces.

Advanced Interfaces
This section introduces the interfaces and strategies that are appropriate in more unusual or performance-critical situations.

Chapter 8, "Thread-Specific Data"

Chapter 9, "Signals"

Chapter 10, "Advanced Synchronization"

Chapter 11, "Thread Cancellation"

Chapter 12, "Threads Scheduling"

Chapter 13, "Threads and Processes: Advanced Topics"

Chapter 14, "Advanced Synchronization Strategies"

Chapter 15, "Multiprocessor Issues"

Chapter 16, "Parallel Computation"
You can skip this section on a first reading, but it is a good idea to at least skim it at some point so you know what's there if you need it.

Using Threads in the Real World
This section covers techniques for applying threads and constructing correct multithreaded programs and libraries.
Chapter 17, "Multithreading Existing Code"

Chapter 18, "Threads Development Environment"
Reference material This section contains reference material for the practicing thread programmer on a variety of subjects.
Appendix 1A, "Example Programs"
Appendix 1B, "UNIX International Threads"
Appendix 1C, "Manual Pages"
Appendix 1D, "Annotated Bibliography"
There is a World Wide Web site for threads examples, errata and other materials at:

sun/smi/ssoftpress/threads/

This site also contain most of the larger code examples in this book in full running form.
Coding Conventions

In many of the smaller coding examples, full declarations, included files, and full testing for errors are deleted for clarity. In these examples you should generally assume that the line:

#include
appears somewhere before the code. Since this book concentrates on threads more than the other aspects of POSIX, you should understand that the newer POSIX interfaces (as well as the newer UNIX International interfaces) no longer rely on the global variable errno to return error codes. Instead, they mostly return zero if the function was successful, or a non-zero error code (found in the include-file ).

Product Details

  • Paperback: 576 pages
  • Publisher: Prentice Hall; 1st edition (January 23, 1996)
  • Language: English
  • ISBN-10: 0131723898
  • ISBN-13: 978-0131723894
  • Product Dimensions: 9.1 x 7 x 1 inches
  • Shipping Weight: 1.9 pounds
  • Average Customer Review: 5.0 out of 5 stars  See all reviews (5 customer reviews)
  • Amazon Best Sellers Rank: #125,067 in Books (See Top 100 in Books)

More About the Author

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

 

Customer Reviews

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

10 of 10 people found the following review helpful:
5.0 out of 5 stars A simpler introductory manual, March 19, 2002
This review is from: Programming With Threads (Paperback)
This book should have been called "Introduction to Posix threads in Solaris and multithreading issues".

Pros:

- covers Posix threads, including more complex aspects, which are "usually neglected by ... implementors" to quote the authors. Includes threads cancellation and fork behaviour.

- a set of ideas, problems and methods that you may encounter while developing multithreaded software. Most of them are on the simpler side though.

- compact, highly informative chapters (average to 20 pages each).

Cons:

- No word on differences between Unix flavours. Basically it's all refers to Solaris, which I can understand, since Mr. Kleiman is the head of Sun Solaris threading dept (also Posix threads committee member).

- C API only, no existing C++ implementations behaviour or really anything C++ related.

- Mostly recommendations. Nothing on the _existing_ practices, libs or whatever. One or two of the existing bigger pieces of software could have been surgically dissembled to show how it's done. Some math analysis is shown, but it ends with yet another recommendation.

- The methods and problems covered could be more deep, otherwise it's sort of an introduction.

- Some of the samples are too big.

Overall:

- Gives you an impression that the authors are very knowledgeable (yeah, right, see note on who one of the authors is), and capable of explaining complex things with simple words, but a little bit ignorant in that they consider the reader not worth sharing more knowledge with.

- Certain chapters must be stripped out, and more pure theoretical info added.

- A recommended book all in all.

P.S. A stylish cover.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


7 of 7 people found the following review helpful:
5.0 out of 5 stars The best source on threads I can find, July 19, 1999
By A Customer
This review is from: Programming With Threads (Paperback)
Wholeheartedly agree with the others. This is an excellent treatment of threading with a wealth of examples. I especially like the Advanced Topics where they address cases and situations that seem very common in practice yet are not documented elsewhere.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


6 of 6 people found the following review helpful:
5.0 out of 5 stars Excellant in depth, July 14, 1998
By A Customer
This review is from: Programming With Threads (Paperback)
The Book assume the reader has background in threading and OS internal related concepts (althouth pthread is for applications, it has strong similiarity with OS design issue). It gives a concise introduction to the pthread interface and semantics, then quickly (yeah, I like such way) go into application and related issue discussions. I find such way is very intuitive and meet my taste.

There are two drawbacks from general point of view, one is the book is not appopriate for Unix beginner. The other one is the examples are taken from handy code, not well trimmed to only pinpoint the topics, but it make me feel more natural and practical.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

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



Only search this product's reviews



What Other Items Do Customers Buy After Viewing This Item?


Tags Customers Associate with This Product

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

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 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
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums



So You'd Like to...


Create a guide


Look for Similar Items by Category


Look for Similar Items by Subject