我的程序有一个openGL渲染线程和一个数据修改线程。渲染线程访问ArrayLists中的数据,而数据修改线程更改,删除对象并将对象添加到ArrayLists。线程每秒更新约60次,而ArrayList操作是程序的瓶颈。我尝试了同步块(synchronized block)( super 慢),CopyOnWriteArrayLists(非常慢),并在渲染线程中创建了缓冲区ArrayList(少了三个弊端)。从并发ArrayList中获得最大效率的“最佳”方法是什么?

最佳答案

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

10-06 02:49