Summary
This chapter tackled the topic of concurrent programming in which a number
of processes interact, either through shared memory, or by synchronous
communication. The first case represents concurrency for imperative
programming. In particular, we have detailed the mechanisms of mutual
exclusion whose use permits the synchronization of processes for access to
shared memory.
Synchronous communication offers a model for concurrency in functional
programming. In particular, the possibility of sending closures and
synchronization events on communication channels facilitates the
composition of calculations carried out in different processes.
The processes used in this chapter are the threads of the Objective CAML Thread module.