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();
}
}