wpe2.jpg (3588 bytes)

Best Practices in Pthreads Multithreaded Programming

This course provides advanced training the design, development, troubleshooting, and repair of multithreaded applications designed to run on UNIX and Linux platforms (as well as Windows, using an open source Pthreads library). Specifically, this course provides advanced instruction on the programming features available with POSIX Pthreads, with an emphasis on performance and reliability.

This 2- to 3-day lecture-lab course covers:

Text: Programming with POSIX Threads by Butenhof

Full Course Schedule

The actual contents and duration can be customized to be appropriate for the participants' experience and requirements. There are extensive exercises and demonstrations tailored to the lecture material.

  1. About This Course (0.5 Hour)
  2. Introduction (0.5 Hour)
  3. POSIX Pthreads Management Essentials (2.0 Hours)
  4. POSIX Synchronization Basics - Mutexes and Condition Variables (4.0 Hours)
  5. Debugging and Dynamic Analysis (1.5 Hours)
  6. Thread-Safe Libraries and Thread-Specific Data (2.0 Hours)
  7. Advanced Thread Models: Programming, Reliabililty, and Performance Impact (2.5 Hours)
  8. Thread Exceptions, Termination, and Cancellation (2.5 Hours)
  9. Thread Scheduling, Designing for Performance, Avoiding Performance Pitfalls (2.0 Hours)
  10. Extended Exercises Including Client/Server Computing (2.0 Hours)
  11. Advanced Pthreads Features (2.5 Hours)
  12. Vendor and Platform Specific Considerations (1.0 Hour)

Additional thread debugging and profiling topics are covered throughout the course. Times include exercises and demonstrations, and the pace can be adjusted to suite your needs.

Audience: Software engineers and programmers, including those with some experience with threads,  who need to learn how to develop reliable, high-performance multithreaded Pthreads client, desktop, and server applications.

Prerequisites: Knowledge of C (or C++, Java, etc.) programming, experience developing UNIX or Linux applications. Prior experience with thread management and synchronization are helpful, but not required.

Contact Information:
  JMH Associates
  Phone: 781-789-7413
  jmh_assoc@hotmail.com, jmhart@world.std.com