Junior — Middle
Milyen típusú szerkezetet érdemes használni a szálbiztonság biztosítására, amikor ritkán frissítjük az elemeket egy listában?
sobes.tech MI
Válasz az MI-től
Az Java-ban ritkán frissített elemek listában való biztonságos kezeléséhez kiválóan alkalmas az CopyOnWriteArrayList adatszerkezet.
A CopyOnWriteArrayList jellemzői:
- Minden módosítás (hozzáadás, törlés) során létrejön a belső tömb új másolata.
- Az olvasás zárolás nélkül történik, ami nagyon hatékony gyakori olvasások és ritka írások esetén.
Használati példa:
import java.util.concurrent.CopyOnWriteArrayList;
CopyOnWriteArrayList<String> lista = new CopyOnWriteArrayList<>();
lista.add("elem1");
lista.add("elem2");
// Szálbiztos olvasás
for (String s : lista) {
System.out.println(s);
}
Így a CopyOnWriteArrayList akkor ideális, ha a frissítések ritkák, az olvasások pedig gyakoriak, biztonságot nyújtva összetett szinkronizáció nélkül.