/**
* Creazione di un Monitor per l'allocazione globale
* delle risorse 
*/
public class GestoreBastoncini {

	protected byte num_bast[]={2,2,2,2,2};
	public synchronized void acquisizione_bastoncini(int who){
		while (num_bast[who]<2){
			try{
				wait();
			}catch(InterruptedException ie){}
		}// fine while
		num_bast[(who+1)%5]--;
									// Prendiamo il bastoncino a destra
		num_bast[(who+4)%5]--;
									// Prendiamo il bastoncino a sinistra
	}// fine acquisizione_bastoncini

	public synchronized void rilascio_bastoncini(int who){
		num_bast[(who+1)%5]--;
									// Rilasciamo il bastoncino a destra
		num_bast[(who+4)%5]--
									// Rilasciamo il bastoncino a sinistra
		notifyAll();
	}// fine acquisizione_bastoncini

}// fine classe

Listato 4
Realizzazione di un Monitor