Hallo zusammen,
Ich beschäftige mich gerade mit Nebenläufigkeit und habe eine Frage dazu.
Es geht um eine ArrayList die bis zu einem bestimmten Wert gefüllt werden kann.Eingabe sind Objects,jedes dieser Objects stellt einen Thread dar.Dieses Objects haben 2 Methoden,einmal add und remove,mit der sie sich in die Liste einschreiben und wieder löschen.
Jetzt soll das ganz ja synchron ablaufen .z.b : Object 1 hat Array betreten,Object 2 hat Array betreten,Object 1 hat Array verlassen.
Jedoch verhungert bei mir die Methode remove(es kommt nie zur Ausgabe dass ein Object den Array verlassen hat).
Ich habe beide Methoden mit synchronized versehen und auch sonst versucht mit Locks zu arbeiten ,allerdings ohne Erfolg.
Vermutlich verstehe ich das ganze zu wenig,aber wäre nett, wenn jemand dazu etwas zu sagen hat(gerne auch nur Tipps zur Synchroniesierung)
Lg lolio
Edit: Die Objects klasse implementiert runnable und in der run()-Methode werden in einer Endlosschleife erst add() und dann remove() ausgeführt.
Ich beschäftige mich gerade mit Nebenläufigkeit und habe eine Frage dazu.
Es geht um eine ArrayList die bis zu einem bestimmten Wert gefüllt werden kann.Eingabe sind Objects,jedes dieser Objects stellt einen Thread dar.Dieses Objects haben 2 Methoden,einmal add und remove,mit der sie sich in die Liste einschreiben und wieder löschen.
Jetzt soll das ganz ja synchron ablaufen .z.b : Object 1 hat Array betreten,Object 2 hat Array betreten,Object 1 hat Array verlassen.
Jedoch verhungert bei mir die Methode remove(es kommt nie zur Ausgabe dass ein Object den Array verlassen hat).
Ich habe beide Methoden mit synchronized versehen und auch sonst versucht mit Locks zu arbeiten ,allerdings ohne Erfolg.
Vermutlich verstehe ich das ganze zu wenig,aber wäre nett, wenn jemand dazu etwas zu sagen hat(gerne auch nur Tipps zur Synchroniesierung)
Lg lolio
Edit: Die Objects klasse implementiert runnable und in der run()-Methode werden in einer Endlosschleife erst add() und dann remove() ausgeführt.
Zuletzt bearbeitet: