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

时间:2011-05-02 17:05:16

标签: java multithreading data-structures synchronization arraylist

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

2 个答案:

答案 0 :(得分:3)

List<YourObject> syncList = Collections.synchronizedList(yourList);

答案 1 :(得分:1)

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