/ / Java - Кой е най-ефективният начин за синхронизиране на ArrayList? - Java, многонишковост, структури от данни, синхронизация, арахилист

Java - Кой е най-ефективният начин за синхронизиране на ArrayList? - java, multithreading, структури от данни, синхронизация, arraylist

Програмата ми има OpenGL нишка и aнишка за модификация на данни. Контурът за рендиране достига до данните в група от ArrayLists, докато нишката за промяна на данните променя, премахва и добавя обекти към ArrayLists. Нишките се обновяват около 60 пъти в секунда, а манипулацията на ArrayList е пречка за програмата. Опитах синхронизиращи блокове (супер бавно), CopyOnWriteArrayLists (доста бавно) и създавам буфер ArrayLists в нишката за рендиране (по-малко от три злини ). Какъв е "най-добрият" начин за постигане на максимална ефективност от едновременни ArrayLists?

Отговори:

1 за отговор № 1

Най-добрият механизъм е да извършите работата си в GL нишката и операциите на опашката, които трябва да бъдат изпълнени. Ако само една нишка има достъп до списъка, няма проблем.


3 за отговор № 2
List<YourObject> syncList = Collections.synchronizedList(yourList);