Beispiel Monitore

// Methoden "Parken" (= put) und "Abholen" (= get)
class Stellplatz
{
	int puffer;
	boolean vorhanden = false;

	public synchronized void parken(TextArea t, int nummer)
	{
		// Wenn Parkplatz besetzt, dann nicht parken!
		if (vorhanden) try
		{
			wait();
		}
		catch (InterruptedException e) {}
		t.appendText("Eingetragen: "+nummer+"\n");
		puffer = nummer;
		vorhanden = true;
		notify();
	}

	public synchronized void abholen(TextArea t)
	{
		// Wenn kein "Auto da" auf Auto warten
		if (!vorhanden) try
		{
			wait();
		}
		catch (InterruptedException e) {}
		t.appendText("Abgeholt: "+puffer+"\n");
		vorhanden = false;
		notify();
	}
}

Programmbeispiel