URL: https://www.overclockers.at/coding-stuff/java-util-collections-synchronizedlist-remove-object-keep-slot_247570/page_1 - zur Vollversion wechseln!
ich habe eine java.util.Collections.synchronizedList mit K objekten und N threads. ein thread n greift auf ein element mit index k zu, wobei beliebig viele threads auf den selben index k zugreifen könnten. auf jedes element darf aber zu jedem zeitpunkt nur von 1 thread zugegriffen werden, und die reihenfolge der elemente in der liste soll konstant bleiben (also kein remove() ... add()). wie löse ich das? gibts eine thread-safe möglichkeit, ein element in der liste z.b. mit null zu ersetzen?
synchronizedList ist von Haus aus "thread safe" was Operationen auf dieser angeht. Einziges Problem ist, wenn du parallel in einem anderen Thread über die Liste iterierst (siehe hier).
@ Reihenfolge soll konstant bleiben: Du kannst eine ArrayList nehmen und, anstatt remove() und add(), set(index, element) aufrufen. element kann hierbei auch null sein.
danke, das werde ich versuchen.
funktioniert
Freut mich
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025