%threads.entities; ]> Bibliography AndrewsSchnieder83 ACM Computing Surveys Vol. 15 No. 1 March, 1983 Gregory R. Andrews Fred B. Schneider <ulink url="http://www.acm.org/pubs/citations/journals/surveys/1983-15-1/p3-andrews/" >Concepts and Notations for Concurrent Programming</ulink> Good general background reading. Includes descriptions of Path Expressions, Message Passing, and Remote Procedure Call in addition to the basics Boost The Boost world wide web site. http://www.boost.org &Boost.Threads; is one of many Boost libraries. The Boost web site includes a great deal of documentation and general information which applies to all Boost libraries. Current copies of the libraries including documentation and test programs may be downloaded from the web site. Hansen73 ACM Computing Surveys Vol. 5 No. 4 December, 1973 0-201-63392-2 Per Brinch Hansen <ulink url="http://www.acm.org/pubs/articles/journals/surveys/1973-5-4/p223-hansen/" >Concurrent Programming Concepts</ulink> "This paper describes the evolution of language features for multiprogramming from event queues and semaphores to critical regions and monitors." Includes analysis of why events are considered error-prone. Also noteworthy because of an introductory quotation from Christopher Alexander; Brinch Hansen was years ahead of others in recognizing pattern concepts applied to software, too. Butenhof97 <ulink url="http://cseng.aw.com/book/0,3828,0201633922,00.html" >Programming with POSIX Threads </ulink> David R. Butenhof Addison-Wesley 1997 ISNB: 0-201-63392-2 This is a very readable explanation of threads and how to use them. Many of the insights given apply to all multithreaded programming, not just POSIX Threads Hoare74 Communications of the ACM Vol. 17 No. 10 October, 1974 <ulink url=" http://www.acm.org/classics/feb96/" >Monitors: An Operating System Structuring Concept</ulink> C.A.R. Hoare 549-557 Hoare and Brinch Hansen's work on Monitors is the basis for reliable multithreading patterns. This is one of the most often referenced papers in all of computer science, and with good reason. ISO98 <ulink url="http://www.ansi.org">Programming Language C++</ulink> ISO/IEC 14882:1998(E) This is the official C++ Standards document. Available from the ANSI (American National Standards Institute) Electronic Standards Store. McDowellHelmbold89 Communications of the ACM Vol. 21 No. 2 December, 1989 Charles E. McDowell David P. Helmbold <ulink url="http://www.acm.org/pubs/citations/journals/surveys/1989-21-4/p593-mcdowell/" >Debugging Concurrent Programs</ulink> Identifies many of the unique failure modes and debugging difficulties associated with concurrent programs. SchmidtPyarali <ulink url="http://www.cs.wustl.edu/~schmidt/win32-cv-1.html8" >Strategies for Implementing POSIX Condition Variables on Win32</ulink> Douglas C. Schmidt Irfan Pyarali Department of Computer Science, Washington University, St. Louis, Missouri Rationale for understanding &Boost.Threads; condition variables. Note that Alexander Terekhov found some bugs in the implementation given in this article, so pthreads-win32 and &Boost.Threads; are even more complicated yet. SchmidtStalRohnertBuschmann <ulink url="http://www.wiley.com/Corporate/Website/Objects/Products/0,9049,104671,00.html" >Pattern-Oriented Architecture Volume 2</ulink> Patterns for Concurrent and Networked Objects POSA2 Douglas C. Schmidt Michael Stal Hans Rohnert Frank Buschmann Wiley 2000 This is a very good explanation of how to apply several patterns useful for concurrent programming. Among the patterns documented is the Monitor Pattern mentioned frequently in the &Boost.Threads; documentation. Stroustrup <ulink url="http://cseng.aw.com/book/0,3828,0201700735,00.html" >The C++ Programming Language</ulink> Special Edition Addison-Wesley 2000 ISBN: 0-201-70073-5 The first book a C++ programmer should own. Note that the 3rd edition (and subsequent editions like the Special Edition) has been rewritten to cover the ISO standard language and library.