A practical guide and reference to developing multithreaded programs on UNIX systems written by the foremost experts on the technology. Covers the two main UNIX threads and the UNIX International threads standard. All examples in the book use the POSIX standard.
"synopsis" may belong to another edition of this title.
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.
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.
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:
This site also contain most of the larger code examples in this book in full running form.
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:
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 ).
"About this title" may belong to another edition of this title.
Book Description Prentice Hall, 1996. Paperback. Book Condition: New. book. Bookseller Inventory # 0131723898
Book Description Prentice Hall. Book Condition: Brand New. Ships from USA. FREE domestic shipping. Bookseller Inventory # 0131723898
Book Description Prentice Hall, 1996. Paperback. Book Condition: New. Bookseller Inventory # DADAX0131723898
Book Description Prentice Hall, 1996. Paperback. Book Condition: New. Bookseller Inventory # P110131723898
Book Description Prentice Hall. PAPERBACK. Book Condition: New. 0131723898 New Condition. Bookseller Inventory # NEW6.0048435