Beispiel: Ein beschränktes Erzeuger/Verbraucher-System
Sehr häufig treten Erzeuger/Verbraucher-Systeme auf: Ein Partner stellt Dinge her, ein oder mehrere andere verarbeiten sie weiter.
Sind die Partner unterschiedlich schnell, müssen die erzeugten Dinge zwischengelagert, gepuffert werden.
- Eine erste Wartesituation entsteht, wenn ein Verbraucher einen leeren Puffer vorfindet.
- Ist die Pufferkapazität beschränkt, muß umgekehrt der Erzeuger warten, wenn der Puffer voll ist.
Im folgenden Programm wird der Puffer durch ein Element der Klasse Vector realisiert. Da diese Elemente im Prinzip unbeschränkt sind, wird die Pufferkapazität als eigenes Attribut verwaltet.