This document discusses threads and multithreaded programming. It covers thread libraries like Pthreads, Windows threads and Java threads. It also discusses implicit threading using thread pools, OpenMP and Grand Central Dispatch. Issues with multithreaded programming like signal handling, thread cancellation and thread-local storage are examined. Finally, thread implementation in Windows and Linux is overviewed.