The Threads Library provides two classes of routines: thread management routines and synchronization routines. The thread management routines are discussed in ``Basic threads management''. These include routines to create threads, terminate threads, wait for threads, and adjust threads' scheduling characteristics. In addition, this section discusses how signals interact with multithreaded programs, how threads are scheduled, and the relationship between threads and lightweight processes. The synchronization routines are discussed in ``Synchronizing threads''. This includes an overview of the various types of locks, semaphores, barriers, and condition variables, used to synchronize threads that are sharing data.
``Compilation environment'' and ``Tracing multithreaded programs'' discuss the compilation environment and facilities for tracing multithreaded programs. Finally, ``Examples'' gets you started with some basic threads programs.
This discussion is not intended to replicate all the information covered on the reference manual pages for the threads library routines. Please refer to the manual pages referenced for details such as error returns. The overview pages, thread(S) and synch(S) list all the available routines.