siehe WP
Es gibt einen Erzeuger, der Daten erzeugt, und ein Verbraucher, der Daten verbraucht.
Sie kommunizieren über einen Puffer. Der Puffer ist als Ringpuffer ausgelegt.
Hier die Lösung in C++ mit Template.
Das zugehörige main.cc
Bau mit make main. Das Makefile
Siehe auch: Die Lösung in ADA