1. Trainspotting
  2. Trainmonitoring
  3. CCHAT
  4. Workers

Lab 2: Trainmonitoring


Lab description

In this assignment, you will implement a variation of the program to control the two trains that uses monitors.

Programming language

This lab assignment must be developed in Java.


Your assignment is to adapt the program that controls the trains from the Lab 1: Trainspotting to use monitors instead of semaphores.


Getting started

Use the same project file organization as in lab 1. Copy to, rename the class, and change to use Lab2 instead of Lab1. You do not need to change the map file.

Tips and Tricks

To give you some hints, you should think that each track is represented by a monitor. The monitor will have, at least, the following interface:

public void enter();
public void leave();

where enter() is called by a train when it enters a single track, and leave() is called by a train when it leaves a single or double track.


In your submission, you should clearly explain the following items: