Multithreaded application development is a powerful model for the development of high-performance software systems. GNU/Linux provides the POSIX pthreads API for a standard and portable programming model. In this chapter, we explored the standard thread creation, termination, and synchronization functions. This includes the basic synchronization using a join, but also more advanced coordination using mutexes and condition variables . Finally, building pthread applications was investigated, along with some of the pitfalls that can be encountered (such as reentrancy) and how to deal with them. The GNU/Linux 2.6 kernel (using NPTL) provides a closer POSIX implementation and more efficient IPC and kernel support, than the prior LinuxThreads version.