我的程序有一个openGL渲染线程和一个数据修改线程。渲染线程访问一堆ArrayLists中的数据,而数据修改线程则更改,删除对象并将对象添加到ArrayLists。线程每秒更新大约60次,并且ArrayList操作是程序的瓶颈。我已经尝试过synch blocks(超级慢),CopyOnWriteArrayLists(非常慢),并在渲染线程中创建缓冲区ArrayLists(三个邪恶中较少)。什么是从并发ArrayLists中获得最大效率的“最佳”方法?
答案 0 :(得分:3)
List<YourObject> syncList = Collections.synchronizedList(yourList);
答案 1 :(得分:1)
最好的机制是在GL线程和队列操作中执行您的工作。如果只有一个线程访问列表,则没有问题。