# Bibliography

AndrewsSchnieder83

## ACM Computing Surveys

Vol. 15 No. 1 March, 1983 Gregory R. Andrews Fred B. Schneider

## Concepts and Notations for Concurrent Programming

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.Thread; 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

## Concurrent Programming Concepts

"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

## Programming with POSIX Threads

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

## Monitors: An Operating System Structuring Concept

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

## Programming Language C++

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

## Debugging Concurrent Programs

Identifies many of the unique failure modes and debugging difficulties associated with concurrent programs.

SchmidtPyarali

## Strategies for Implementing POSIX Condition Variables on Win32

Douglas
C.
Schmidt
Irfan
Pyarali
Department of Computer Science, Washington University, St. Louis, Missouri

Rationale for understanding &Boost.Thread; condition variables. Note that Alexander Terekhov found some bugs in the implementation given in this article, so pthreads-win32 and &Boost.Thread; are even more complicated yet.

SchmidtStalRohnertBuschmann

## Pattern-Oriented Architecture Volume 2

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.Thread; documentation.

Stroustrup

## The C++ Programming Language

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.