Designing and Debugging Scaleable Multithreaded Applications

Course Code: U3715S
Length: 4 days

Schedule and Registration

This course is not currently scheduled.

Course Description

This course provides advanced training in the design, development, troubleshooting, and repair of multithreaded applications designed to run on the HP OpenVMS operating system. The course teaches how to use the standard POSIX Pthreads interface effectively through a solid understanding of the interfaces, threading models, synchronization, and scheduling. Methods to design and develop reliable, high-performance multithreaded applications are emphasized.

Common pitfalls and risks are discussed throughout, with the emphasis on designing and implementing applications correctly so as to avoid defects and performance problems in new applications, as well as detecting, analyzing, and repairing defects and problems in existing programs.

Extensive exercises and programming examples illustrate the topics covered in the course. The exercises require an understanding of multithreading design principles and an ability to troubleshoot existing programs.

Who Should Attend

Software engineers who develop and support multithreaded software applications on the hp OpenVMS operating system.


Students should be able to use standard OpenVMS commands, program in ANSI standard C, use a debugger, and develop and understand basic programs using POSIX Pthreads.

Benefits of Attending this Class

Upon completion of this course, students should be able to:

  • Describe program concurrency, parallelism, and synchronization and their implementation in POSIX Pthreads
  • Describe the advantages and drawbacks of developing applications using POSIX Pthreads
  • Design multithreaded applications to get the best performance
  • Avoid, detect, and repair common multithreaded program defects
  • Perform source-level debugging, profiling, and execution using facilities such as the ladebug and Visual Threads debugger
  • Describe the considerations when using HP Tru64 UNIX or OpenVMS along with general portability considerations

Course Contents

Introduction to threads
  • Threads and multithreading concepts
  • Models for thread usage
  • Additional thread challenges
  • Pthreads and the POSIX threads library
Thread management essentials
  • Thread management
  • Introduction to visual threads
POSIX synchronization
  • Synchronization motivation
  • Mutexes
  • Condition variables
  • Memory visibility between threads
  • Visual threads and synchronization
Advanced thread programming
  • Attribute objects named objects
  • Thread attributes
  • Read-write locks
  • One-time initialization
  • Thread-specific data
  • Thread-safe and re-entrant functions
  • Two compound objects: semaphores and threshold barriers
  • Visual threads and application analysis and tuning
Thread exceptions, termination and cancellation
  • Thread cancellation
  • Exception handling
Thread scheduling
  • Scheduling
  • Two-level scheduling
Threads and client/server computing
  • Design of a multithreaded server
HP OpenVMS considerations
  • HP OpenVMS considerations
  • NUMA systems
Thread debugging and profiling
  • Avoid debugging
  • Profiling multithreaded applications
  • Using visual threads

Cookie Manager

We use cookies to enhance the features of our web site. We don't set optional cookies unless you enable them. Using this tool sets a cookie on your device to remember your preferences. For more detailed information about the cookies we use, see our Cookies page.

Necessary Cookies

Necessary cookies enable core functionality such as security, network management, and accessibility. You may disable these by changing your browser settings, but this may affect how the website functions.

Preference Cookies

Preference cookies enable this site to remember information that changes the way the website behaves or looks.

Statistics Cookies

Statistic cookies help us to understand how visitors interact with the site by collecting and reporting information anonymously.

Marketing Cookies

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.