This document discusses threads and multithreading models. It covers user threads managed by a library and kernel threads supported by the operating system. The many-to-one, one-to-one, and many-to-many models are described. Specific threading implementations for POSIX Pthreads, Solaris, Windows 2000, Linux, and Java are also summarized.