Buffer - Consumer Producer - Threads synchronisieren

  • Hallo,
    hab wieder mal ne nette Aufgabe :D.
    Gegebn sind eine Klasse Producer, Consumer (beide runnable) und UnsynchronizedBuffer. Der Producer schreibt nach zufälliger Zeit (zehn mal in schleife) in einen gemeinsamen Buffer den Consumer nach zufälliger Zeit ausliest (zehn mal in 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. Wie könnte ich die beiden zugriffe synchronisieren (im Buffer).

    Vielen Dank schon mal für die Hilfe

  • Klassisches Producer-Consumer, sprich abwechselnd?

    Bsp.:

    Generell: sychronized stellt übrigens sicher, dass nur eine der synchronized-Methoden eines Objektes gleichzeitig ausgeführt werden kann, es gibt einen Lock auf das Objekt (this).

    http://www.iks.hs-merseburg.de/~uschroet/Literatur/Java_Lit/JAVA_Insel/javainsel_11_005.htm#t2t38

    Einmal editiert, zuletzt von polymorph10 (17. Januar 2011 um 16:50)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!