The STL threading API
In Chapter 3, C++ Multithreading APIs, we looked at the various APIs that are available to us when developing a multithreaded C++ application. In Chapter 4, Thread Synchronization and Communication, we implemented a multithreaded scheduler application using the native C++ threading API.
Boost.Thread API
By including the <thread>
header from the STL, we gain access to the std::thread
class with facilities for mutual exclusion (mutex, and so on) provided by further headers. This API is, essentially, the same as the multithreading API from Boost.Thread
, the main differences being more control over threads (join with timeout, thread groups, and thread interruption), and a number of additional lock types implemented on top of primitives such as mutexes and condition variables.
In general, Boost.Thread
should be used as a fall back for when C++11 support isn't present, or when these additional Boost.Thread
features are a requirement of one's application, and not easily...