This article is from the Threads Programming FAQ, by Bryan O'Sullivan firstname.lastname@example.org with numerous contributions by others.
Although this FAQ has been the result of a co-operative effort, any
blame for inaccuracies and/or errors lies entirely with my work. I
would like to thank the following people for their part in
contributing to this FAQ:
Dave Butenhof <email@example.com>
Bil Lewis <bil@lambdaCS.com>