This article is from the Threads Programming FAQ, by Bryan O'Sullivan firstname.lastname@example.org with numerous contributions by others.
This posting consists of answers to many of the questions most
frequently asked and summaries of the topics most frequently covered
on comp.programming.threads, the Usenet newsgroup for discussion of
issues in multithreaded programming. The purpose of this posting is to
circulate existing information, and to avoid rehashing old topics of
discussion and questions. Please read all parts of this document
before posting to this newsgroup.
The FAQ is posted monthly to comp.programming.threads, in multiple
parts. It is also available on the World-Wide Web, at
<URL: http://www.serpentine.com/~bos/threads-faq>. You may prefer to
browse the FAQ on the Web rather than on Usenet, as it contains many
useful hyperlinks (and tables are readable, which is unfortunately not
the case for the text version).