Many Windows developers still write code as if their application is a single entity that, while it is running, has complete control of all system resources. This legacy from the days of DOS means that developers frequently fail to take advantage of Win32's support of multiple threads of execution to improve their application's performance or to enhance its functionality. For instance, a main thread can handle interactions with the user, while a background "worker" thread can handle repainting the application window or performing some background calculations. But multithreaded programming means more than adding threads; it also requires that the code be thread-safe.
Win32 Multithread Programming explains the concepts of multithreaded programs, thus providing the developer with the knowledge necessary to skillfully construct efficient and complex applications. From basic thread synchronization using mutexes and semaphores, to advanced topics like creating reusable thread pools or implementing a deferred processing queue, the book uses real-world applications and carefully constructed examples to illustrate the principles of multithreaded programming. Some of the topics include:
How the Windows operating systems handle threads
Multithreading primitives in the Win32 API
Techniques for generating thread-safe dynamic link libraries
Advanced techniques for thread synchronization
Basic scenarios for synchronizing threads
Common designs for building multithreaded user interfaces
The CD-ROM accompanying the book features Mcl, the authors' C++ class library for multithreaded programming, which both wraps multithreaded API functions and easily supports more complex multithreaded scenarios. For programmers using MFC, an additional library, Mcl4Mfc, is included for MFC compatibility.
Win32 Multithread Programming is an essential resource for any developer interested in learning about Win32 multithreaded programming in order to create high-performance, effective applications.