Was ist der Unterschied zwischen CopyOnWritearraylist
y Collections.synchronizedList(..)
? Wann sollte das eine dem anderen vorgezogen werden?
Antwort
Zu viele Anzeigen?CopyOnWriteArrayList
Liste sollte verwendet werden, wenn die Zahl der Lesevorgänge die Zahl der Schreibvorgänge bei weitem übersteigt. Der Grund dafür ist, dass Sie unnötige Synchronisierung gegen teures Kopieren des Arrays bei jedem Schreibvorgang eintauschen.
Zum Beispiel, wenn Sie eine List
von Ereignis-Listenern in einer Multi-Thread-Umgebung zu verwenden, sollten Sie CopyOnWriteArrayList
denn
- Ereignisse ausgelöst werden und die Liste daher sehr oft durchlaufen wird
- Ereignis-Listener werden selten registriert