Zastanawiam się nad tym jak najlepiej tworzyć bezpieczną kolekcję która działa jak ArrayList
Słyszałem że Vector jest niezbyt udana i się nie powinno jej stosować.
Teraz są takie możliwości
-użycie CopyOnWriteArrayList
-użycie metody synchronizedlist
-ew. atomic reference
W moim przypadku tworzę statyczną kolekcję w mainie i przekazuje jej referencję do nowych wątków gdzie wywołuje 1 operacje dodania a tak to następuje głównie czytanie z tej kolekcji.
Rozumiem że w tym przypadku najlepiej jest zastosowac CopyOnWriteArrayList zakładając małą ilośc dodań nowych obiektów do kolekcji?
Ewentualnie rozumiem że można na początku użyć synchronizedlist np.
List<JakisTypt> objects = Collections.synchronizedlist(new ArrayList<JakisTyp>());
I wtedy od początku dana lista jest threadsafe i nie musze używac synchronized itp?