Java - 同步ArrayList的最有效方法是什么?

far*_*ich 5 java multithreading synchronization arraylist data-structures

我的程序有一个openGL渲染线程和一个数据修改线程.渲染线程访问一堆ArrayLists中的数据,而数据修改线程则更改,删除对象并将对象添加到ArrayLists.线程每秒更新大约60次,并且ArrayList操作是程序的瓶颈.我已经尝试过synch blocks(超级慢),CopyOnWriteArrayLists(非常慢),并在渲染线程中创建缓冲区ArrayLists(三个邪恶中较少).从并发ArrayLists中获得最大效率的"最佳"方法是什么?

Chr*_*ett 1

最好的机制是在 GL 线程中完成您的工作并排队要执行的操作。如果只有一个线程访问该列表,则没有问题。