 
 
 
 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. 
 
 
