Win32 multithreaded programming

Author(s)

    • Cohen, Aaron
    • Woodring, Mike

Bibliographic Information

Win32 multithreaded programming

Aaron Cohen and Mike Woodring

O'Reilly, 1998

1st ed

Available at  / 1 libraries

Search this Book/Journal

Note

"Building thread-safe applications"--Cover

Includes index

Description and Table of Contents

Description

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 Debugging multithreaded applications 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.

Table of Contents

Preface 1. Introduction What Is Multithreaded Programming? Why Write a Multithreaded Program (Why Use Threads)? When Not to Use Threads Making the Transition to Multithreaded Programming 2.Thread Scheduling and Basic Concepts Thread Scheduling Multithreaded Programming Concepts 3.Process and Thread APIs Kernel Objects Processes Thread Mechanics Process Lifetime Revisited 4.Thread Synchronization Tools The Interlocked Functions Critical Sections WaitForSingleObject and WaitForMultipleObjects Mutexes Semaphores Events 5.Interthread Communication Shared Memory and Memory Mapped Files Anonymous Pipes Threads and Message Processing MsgWaitForMultipleObjects 6. Mcl: A C++ Class Library for Multithreaded Programming CMcl Library Class Hierarchy CMcl Class Library Implementation 7.Mcl: Higher-Level Classes CmclSharedMemory CmclLinkedLists CmclMailbox CMclMonitor Makefile for the CMcl Class Library 8.Basic Thread Synchronization Mutual Exclusion of a Resource Single Admission Gate Alterable Waits Competition for Limited Resources Producer and Consumer Variations 9. Advanced Encapsulation Techniques Objects and Thread Synchronization Thread Local Storage 10.Advanced Thread Management Techniques On-Demand Threads Thread Pools 11. DLLs in Multithreaded Programs Anatomy and Semantics of 32-bit DLLs The DllMain Function Exporting Functions and Data Importing Functions and Data Implementing a Considerate DLL Static and Global C++ Objects in DLLs 12. Multithreaded User Interfaces and MFC Win32 Windowing System Fundamentals Multithreaded Programs and User Interfaces Why Use MFC? Using MFC in Multithreaded Programs Using Mcl in MFC Programs The Mcl4Mfc Class Library 13. Basic Multithreaded GUI Designs Three Basic Design Patterns A Self-Animated Control Animated Simulation of the Dining Philosopher's Problem Autonomous Dialog Boxes 14. Structured Exception Handling Overview of Structured Exception Handling Common Uses for Structured Exception Handling Strategies for Dealing with Exceptions Mixing C++ and Structured Exception Handling 15. Debugging Multithreaded Programs Thinking in Parallel The HeisenBUG Uncertainty Principle Step Through Your Code Using the Visual C++ Thread and Callstack Windows Which Is the Primary Thread? Know What Thread You're Debugging Watch Out for Context Switches While Stepping Time Does Not Stand Still in the Debugger Know Which Thread Owns Which Window Using OutputDebugString Shred Your Memory Afterword A. Mcl C++ Class Library Reference B. Mcl4Mfc C++ Class Library Reference Index

by "Nielsen BookData"

Details

Page Top