Using the Packages Together
Threads Module packages are designed to be built and used individually, but most of them depend on other packages, as shown in Table 2 and Figure 1.
Table 2 – Interpackage dependencies 
To use package...
You must also build package...
Execution Tracing
none
Functor
Thread-compatible Exception, Execution Tracing, Synchronization, Smart Pointer
Interthread Communication
Thread-compatible Exception, Execution Tracing, Synchronization, Smart Pointer, Functor
Smart Pointer
Thread-compatible Exception, Execution Tracing, Synchronization
Synchronization
Thread-compatible Exception, Execution Tracing
Thread-compatible Exception
Execution Tracing
Threading
Thread-compatible Exception, Execution Tracing, Synchronization, Smart Pointer, Functor, Interthread Communication
Figure 1 – Interpackage dependency diagram