我需要一些帮助来处理 Android 中的三个线程
一个线程是主线程,一个是GLThread,另一个是我创建的用来更新游戏状态的WorkerThread。
我遇到的问题是它们都需要访问相同的游戏对象链表。 GLThread 和我的 WorkerThread 都只从 LinkedList 读取,所以没有问题,但偶尔我会让主线程将另一个游戏对象添加到列表中。
我该如何管理它?我尝试在涉及的函数前面使用同步,但它确实会降低应用程序的速度。
出于某种原因,仅仅捕获错误而不渲染或更新该帧的游戏状态,导致它开始永久滞后。
有人有什么好主意吗?
最佳答案
我建议使用 CopyOnWriteArrayList。这会在备份列表发生变化时复制它,但允许不同步读取,但要权衡一下,您是从即时读取列表到写操作。
关于java - 线程帮助与 Android 游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2440080/