Developing C++ Multithreading Applications
- volatile - Multithreaded Programmer’s Best Friend - The volatile keyword was devised to prevent compiler optimizations that might render code incorrect in the presence of certain asynchronous events. For example, if you declare a primitive variable as volatile, the compiler is not permitted to cache it in a register — a common optimization that would be disastrous if that variable were shared among multiple threads. So the general rule is, if you have variables of primitive type that must be shared among multiple threads, declare those variables volatile. But you can actually do a lot more with this keyword: you can use it to catch code that is not thread safe, and you can do so at compile time. This article shows how it is done; the solution involves a simple smart pointer that also makes it easy to serialize critical sections of code. volatile - Multithreaded Programmer’s Best Friend
- Multithreaded Programming and Hyper-Threading Technology - Will examines pitfalls in multithreaded programming using as an example Intel’s Hyper-Threading technology that provides thread-level parallelism on each processor. Multithreaded Programming and Hyper-Threading Technology
- Multithreading Invites String of Nasty Bugs - Dr. Edward Lee argues that multithreaded application programming, as commonly practiced, is a flawed methodology that invites a range of nasty, hard-to-identify bugs. Multithreading Invites String of Nasty Bugs
- State Machine Design in C++ - It’s not all that hard to implement a finite-state machine, unless it’s very large, and you have to worry about multithreading, and … State Machine Design in C++
- Multithreaded Asynchronous I/O & I/O Completion Ports - I/O completion ports provide an elegant solution to the problem of writing scalable server applications that use multithreading and asynchronous I/O. Multithreaded Asynchronous I/O & I/O Completion Ports
- Debugging Multithreaded Applications - It is often significantly harder to locate and test for bugs in multithreaded and multiprocess applications than for nonthreaded, single process situations. Our authors describe some of the problems with multithreaded applications and discuss common debugging techniques. Debugging Multithreaded Applications
- Win32 Multithreading Made Easy - Multithreading logic is hard to write and hard to maintain. So keep it simple and separate. Win32 Multithreading Made Easy
- Ant, cpptasks, & Multiplatform C/C++ Projects - Mirko uses Ant and cpptasks to build a multiplatform C/C++ application, then shares tips for migrating existing projects from Make to Ant. Ant, cpptasks, & Multiplatform C/C++ Projects
- Threading from Managed C++ - A thorough introduction to multithreading in a managed world. Threading from Managed C++
- Multithreaded Programming with the Command Pattern - Using the Command design pattern in your multithreaded apps helps you create a framework that encapsulates most of the multithreaded behavior and reduces development to application-level logic. Multithreaded Programming with the Command Pattern
- Multithreading in C++ - Multithreading in C++ Multithreading in C++
- Introducing the Boost Corner - April 2003 marked the beginning of a new feature at CUJ Online — the Boost Corner. CUJ’s Boost Corner, which is sponsored by Dinkumware, provides ongoing coverage of one of the most exciting recent developments in C++: the Boost Libraries. Introducing the Boost Corner
- A Portable Multithreading Framework - A Portable Multithreading Framework A Portable Multithreading Framework
- Multithreading Applications in Win32 - Multithreading Applications in Win32 Multithreading Applications in Win32
- C++ and the Perils of Double-Checked Locking: Part II - In this installment, Scott and Andrei examine the relationship between thread safety and the <i>volatile</i> keyword. C++ and the Perils of Double-Checked Locking: Part II
- C++ and The Perils of Double-Checked Locking: Part I - In this two-part article, Scott and Andrei examine Double-Checked Locking. C++ and The Perils of Double-Checked Locking: Part I
- The Boost.Threads Library - Standard C++ threads are imminent. CUJ predicts they will derive from the Boost.Threads library, explored here by the eminent author. The Boost.Threads Library
- Multithreaded Asynchronous I/O & I/O Completion Ports - I/O completion ports provide an elegant solution to the problem of writing scalable server applications that use multithreading and asynchronous I/O. Multithreaded Asynchronous I/O & I/O Completion Ports
Developing C++ Multithreading Applications