Introduction
This chapter describes how to write multithreaded programs in C++ using the Boost Threads library written by William Kempf. Boost is a set of open source, peer-reviewed, portable, high-performance libraries ranging from simple data structures to a complex parsing framework. The Boost Threads library is a framework for multithreading. For more information on Boost, see www.boost.org.
Standard C++ contains no native support for multithreading, so it is not possible to
write portable multithreaded code the same way you would write portable code that uses other
standard library classes like string
, vector
, list
, and so on. The
Boost Threads library goes a long way toward making a standard, portable multithreading
library though, and it is designed to minimize many common multithreading headaches.
Unlike the standard library or third-party libraries, however, using a multithreading
library is not as easy as unzipping it into a directory, adding your #include
s, and coding away. For all but trivial multithreaded
applications, you must design carefully using proven patterns and known tactics to avoid
bugs that are otherwise virtually guaranteed to happen. In a typical, single-threaded
application, it is easy to find common programming errors: off-by-one loops, dereferencing a
null or delete
d pointer, loss of precision on floating-point conversions, and so on. Multithreaded programs are different. Not only is it tedious to keep track of what several threads are doing in your debugger, ...
Get C++ Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.