Multithreading and Synchronisation
using the JavaTM Language

Short description:

This course is an introduction of concurrent programming using Java. Main topics concern multithreading and synchronisation.
Two classic means for handling synchronisation will be presented:
  • monitors provided with Java language ;
  • semaphores, a synchronisation object of lower level of abstraction, present in most operating systems.
The acquisition of those objects and the synchronisation principles will be done through three classical examples, associated with simulations:
  • the train problem, in case of trains must share a single railway for both directions;
  • thre reader/writer problem where many processes must share a common resource like memory;
  • the crossroad problem, in order to avoid collision between different cars.
Learning object description


  1. Introduction course
  2. Train with Java Monitor
  3. Trains in action
  4. Reader/writer with Java Monitor
  5. Crossroad with Java Monitor