Books & Videos

Table of Contents

  1. Chapter 1 Why Threads?

    1. What Are Pthreads?

    2. Potential Parallelism

    3. Specifying Potential Parallelism in a Concurrent Programming Environment

    4. Parallel vs. Concurrent Programming

    5. Synchronization

    6. Who Am I? Who Are You?

    7. Terminating Thread Execution

    8. Why Use Threads Over Processes?

    9. A Structured Programming Environment

    10. Choosing Which Applications to Thread

  2. Chapter 2 Designing Threaded Programs

    1. Suitable Tasks for Threading

    2. Models

    3. Buffering Data Between Threads

    4. Some Common Problems

    5. Performance

    6. Example: An ATM Server

    7. Example: A Matrix Multiplication Program

  3. Chapter 3 Synchronizing Pthreads

    1. Selecting the Right Synchronization Tool

    2. Mutex Variables

    3. Condition Variables

    4. Reader/Writer Locks

    5. Synchronization in the ATM Server

    6. Thread Pools

  4. Chapter 4 Managing Pthreads

    1. Setting Thread Attributes

    2. The pthread_once Mechanism

    3. Keys: Using Thread-Specific Data

    4. Cancellation

    5. Scheduling Pthreads

    6. Mutex Scheduling Attributes

  5. Chapter 5 Pthreads and UNIX

    1. Threads and Signals

    2. Threadsafe Library Functions and System Calls

    3. Cancellation-Safe Library Functions and System Calls

    4. Thread-Blocking Library Functions and System Calls

    5. Threads and Process Management

    6. Multiprocessor Memory Synchronization

  6. Chapter 6 Practical Considerations

    1. Understanding Pthreads Implementation

    2. Debugging

    3. Performance

    4. Conclusion

  1. Appendix Pthreads and DCE

    1. The Structure of a DCE Server

    2. What Does the DCE Programmer Have to Do?

    3. Example: The ATM as a DCE Server

  2. Appendix Pthreads Draft 4 vs. the Final Standard

    1. Detaching a Thread

    2. Mutex Variables

    3. Condition Variables

    4. Thread Attributes

    5. The pthread_once Function

    6. Keys

    7. Cancellation

    8. Scheduling

    9. Signals

    10. Threadsafe System Interfaces

    11. Error Reporting

    12. System Interfaces and Cancellation-Safety

    13. Process-Blocking Calls

    14. Process Management

  3. Appendix Pthreads Quick Reference

  4. Appendix About the Authors

  5. Colophon