Is die der Prinzipielle Ablauf klar?
Hab leider alle Funktionsnamen vergessen, die damit zusammenhaengen, aber das ist sowas von easy zu loesen, dauert keine Stunde (ich hab aberkeine Zeit, bin am arbeiten und dann hab ich ne 7h Autofahrt vor mir)
Du brauchst 1 Semaphor und pro Thread eine Condition.
Der Schreiberthread schreibt bis der puffer voll ist und dann legt er sich schlafen, definiert aber ein condition_signal, so dass er informiert wird wenn am Sempahor was veraendert wurde
dann wacht er auf und schaut ob platz da ist, wenn ja schreibt er wieder und legt sich dann wieder mit der condition schlafen
der leser versucht zu lesen bis es net mehr geht ( am anfang kann er meist gar nix lesen weil nix da is), dann legt er sich schlafen mit ner condition
kommt das signal, so versucht er wieder zu lesen
Das Semaphor ist fuer die Synchronisation zustaendig (ok das ist etwas ungenau, aber vielleicht hilfts ja im Verstaendnis), die conditions sind da, um Polling (aktives Warten) zu vermeiden.