Hallo,
hab wieder mal ne nette Aufgabe .
Gegebn sind eine Klasse Producer, Consumer (beide runnable) und UnsynchronizedBuffer. Der Producer schreibt nach zufälliger Zeit (zehn mal - schleife) in einen gemeinsamen Buffer den Consumer nach zufälliger Zeit ausliest (zehn mal - schleife). Der Producer addiert diese Werte und gibt sie zum schluss aus. Buffer auch. Natürlich ist das ganze nicht synchronisiert und es kann sein dass Consumer z.b. zwei mal den gleichen wert liest. Wir sollen nun mit Hilfe von synchronized, die Methoden in der Buffer Klasse synchronisieren (get und set). Aber synchronized stellt ja nur sicher dass ein Thread auf den anderen wartet sollte dieser gerade eine synchronized Methode ausführen und nicht dass beide abwechselnd schreiben und lesen.
Vielen Dank schon mal für die Hilfe
hab wieder mal ne nette Aufgabe .
Gegebn sind eine Klasse Producer, Consumer (beide runnable) und UnsynchronizedBuffer. Der Producer schreibt nach zufälliger Zeit (zehn mal - schleife) in einen gemeinsamen Buffer den Consumer nach zufälliger Zeit ausliest (zehn mal - schleife). Der Producer addiert diese Werte und gibt sie zum schluss aus. Buffer auch. Natürlich ist das ganze nicht synchronisiert und es kann sein dass Consumer z.b. zwei mal den gleichen wert liest. Wir sollen nun mit Hilfe von synchronized, die Methoden in der Buffer Klasse synchronisieren (get und set). Aber synchronized stellt ja nur sicher dass ein Thread auf den anderen wartet sollte dieser gerade eine synchronized Methode ausführen und nicht dass beide abwechselnd schreiben und lesen.
Vielen Dank schon mal für die Hilfe
Zuletzt bearbeitet: