Overview
This book offers programmers the first comprehensive explanation of multithreading techniques and principles for objects and class libraries. It teaches C++ programmers everything they'll need to build applications that cooperate for system resources instead of competing. This invaluable reference shows you how to avoid common pitfalls of multithreading, whether you're programming in UNIX, Windows NT, or OS/2 environment. All major examples are implemented in each environment and supported by thorough explanations of object-oriented multithread architecture and incremental multithreading. On the disk you'll find all the source code contained in the book, important protocols and information resources and a variety of multithreaded components ready to build into your own applications or class library.This programmer's guide to framework and software component construction for multithreaded applications, uses a building block approach that includes object-oriented techniques to build C++ components that support concurrent programming. The book investigates the anatomy of a process (states, maps, switching, relationships and resources), and discusses lightweight processes (threads), cooperative and preemptive multitasking issues, asymmetric and symmetric processing. Exploring interprocess and interthread communication, object synchronization, and multithreaded architectures, it develops an application framework based on class hierarchies, and discusses class behavior, scope, and more importantly synchronization relationships, thread-safe and unsafe functions in multithreaded environments. There is a very good chapter that clarifies testing procedures for member functions, operational and completeness tests. Along the way, you will learn about mutex, pipe, and thread objects, container components and application frameworks. This excellent publication is based on POSIX 1003.1c, and STL algorithms and containers in multithreaded environments. The diskette contains source code from the book, protocol and information resources and multithreaded components.