我正在创建一个 Android 游戏,但遇到了问题。我有 2 个线程:OpenGL 线程和游戏循环。我使用 ArrayLists 来存储我的可渲染对象,这就是问题所在。有时我需要在游戏线程中删除这些对象,有时它会导致 OpenGL 线程获取 NullPointerException,因为据我了解,它通过集合并突然删除了一个元素。我想我应该让 OpenGL 线程删除对象,但还有其他解决方案吗?如果游戏循环开始获取空元素怎么办?也许我可以以某种方式制作同步线程,尽管我仍然不明白“同步”是如何工作的。谢谢。
这会有帮助吗?我应该把它放在我对 ArrayList 做某事的任何地方吗?
synchronized (arrayListName)
{
arrayListName.remove(object);
}