A part of Concurrency concepts.
[Someone have some URLs that discuss what threads are in general?]
See John Ousterhout's homepage for the Powerpoint slides of his talk Why Threads Are A Bad Idea (for most purposes).
See these pages for more info:
Threading is "fault-prone, deadlock-prone, priority-inversion-prone". Lock (mis)management makes it poor in scaling. It's hard to reason about thread behavior [justify].
DKF wrote in the comp.lang.tcl newsgroup:
Later, he wrote in comp.lang.tcl:
...
Much more deserves to be Wikified. Consider, for example, these comments of Joe English: "And David Gravereaux' advice is worth repeating: making extensions multi-interp safe goes a long way towards making them thread-safe.
I find it easiest to make extensions multi-interp safe and thread-oblivious: if you avoid global and static variables, keeping all the extension's internal data in a per-interp data structure, you can often avoid locking altogether."
RS: "Threads are for hangmen ;-)"
Alan Cox (reputedly): "A computer is a state machine. Threads are for people who can't program state machines."
KBK (21 June 2003) Even the designers of Java, where threads are ubiquitous, appear to have been distinctly ambivalent about them. From [L1 ]:
Use of threads can be very deceptive. In many cases they appear to greatly simplify programming by allowing design in terms of simple autonomous entities focused on a single task. In fact in some cases they do simplify design and coding. However, in almost all cases they also make debugging, testing, and maintenance vastly more difficult and sometimes impossible.
See also http://www.tcl.tk/doc/howto/thread_model.html - Tcl Threading Model.
UK (26 Sept. 2006) This link was mentioned on c.l.t with a disemination of threadability of different scripting languages: http://article.gmane.org/gmane.comp.web.aolserver/13391