The Wayback Machine - https://web.archive.org/web/20110722234826/http://www.codeguru.com:80/cpp/misc/misc/threadsprocesses/
Survey

    Threads/Processes

    C++ Programming: False Sharing in Multi-threaded Programming, and a Glance at the C++0x std::thread

    The article gives an example of false-sharing in multi-threading programming using C++0x std::thread.

    Comparing PVS-Studio (VivaMP) and Intel C/C++ ("Parallel Lint")

    An unsuccessful attempt to compare PVS-Studio (VivaMP) and Intel C/C++ ("Parallel Lint")

    The Practical Guide to Multithreading - Part 1

    Understand from this guide how and when - as well as when not - to use multithreading.

    State Management : Native Parallel Programming for Visual C++

    Visual C++ 2010 includes a number of new features for preventing data inconsistencies due to simultaneous updates of memory locations - a key challenge in parallel development.

    Native Parallel Programming for Visual C++ with the Parallel Processing Library

    Visual C++ 10.0's new Parallel Pattern Library supplies methods to execute multiple processing tasks, across available processing resources, eliminating the headache of manually allocating task execution.

    Per Thread Singleton

    How to write per thread singleton instance to avoid thread contention.

    A Multidevice ASIO Output Plugin for WinAMP

    Explore a C++ replacement of the official ASIO SDK that supports multiple ASIO devices put to the test in a tiny WinAMP output DLL.

    Parallel Programming in Visual C++ 2010 CTP

    The CTP build of Visual C++ 2010 includes a new library to help you write native parallel code.

    Deadlock: the Problem and a Solution

    Deadlocks can certainly put a damper on your day. Learn the ways to circumvent a deadlock in your systems.

    [Updated] Simple Thread: Part II

    Learn how to share data between threads in a thread-safe manner.

    Simple Thread: Part I

    Learn about methods to start, pause, resume, and stop a thread by using _beginthreadex in an MFC dialog application. The sample shows how to update a MFC control as well as how to properly shut down a thread.

    Handling Multiple Processors in Your Code Using RapidMind

    Multicore processors bring new challenges. See a solution for gaining the ability to scale to the increasing number and types of processor cores.

    Why Too Many Threads Hurts Performance, and What to do About It

    Learn why threading, which is the current method of choice for extracting performance from multi-core chips, isn't always the best choice for good performance.

    [Updated] A Simple Thread Pooling Approach

    Learn about a simple mechanism to achieve thread pooling by using Windows messages.

    [Updated] Function Static Variables in Multi-Threaded Environments

    Read a quick review of the dangers surrounding static variables in multi-threaded and potentially multi-core/CPU environments.

    Easy Multithreading in ATL Windows Applications

    Add one header file to your *.vcproj, insert a few lines of code into your class header, and you'll never again worry about the asynchronous routines in your ATL GUI application.

    Multi-Threaded Message Processor

    Learn about a framework for concurrent message processing for disconnected, multi-threaded applications.

    Win32 Thread Synchronization, Part 2: Helper Classes

    Learn about thread synchronization helper classes and their implementation, and sample projects.

    Win32 Thread Synchronization, Part I: Overview

    Learn about processes, threads, and a couple of thread synchronization techniques.

    Running Code Before and After Main

    There is a partially documented feature in the Microsoft C/C++ runtime libraries that allows you to run code before the main function (main, WinMain or DllMain) is called, and after it returns.

    Developing Fast Thread-Safe Code

    A type of synchronization object for threads'—critical sections'—only works for threads within the same process. Learn more about critical sections and operating system behavior.

    Speeding Up Internet Browsing

    This program watches for DNS requests, lists them, and allows you to save them to block certain sites.

    Sequential to Parallel Code Transitioning Using Macros

    Multiprocessor computers are very common nowadays, but the programs that make use of their advantages are quite few. This situation is mainly due to the difficulties accompanying multi-threaded design. There are ways, however, to increase parallelism at low cost. In this article I'm going to describe a method for easy transitioning from sequential single-threaded to parallel multi-threaded code using macros.

    Multithreading: The Construction of Abortable, Lengthy Operations

    Discover how to use multithreading to construct abortable lengthy operations in an MFC environment.

    Class CMaleLogger - Logging System

    The CMaleLogger class provides easy-to-use, powerful, extra low CPU consuming and thread-safe logging system to multithreaded and single-threaded programs.