input: [0] Explicit Threading APIs [1] Low-level APIs such as the Win32* Threading API and Pthreads* for low-level multi-threaded programming [3] Relatively complex code to write, debug, and maintain; very time-consuming All thread management and synchronization done by the programmer [2] 
output: Maximum control and flexibility Does not need special compiler support