我是 Java 新手,在尝试实现一个简单的游戏时遇到了问题。目前游戏的前提是,使用计时器来添加汽车,并且更频繁地更新汽车的运动。一辆车可以通过触摸来选择,并通过绘制它的路径来引导。更新功能将沿着路径移动汽车。
现在,游戏因IndexOutOfBoundsException而崩溃,我几乎可以肯定这是因为偶尔,当重新选择汽车时,当前路径会被擦除,它允许绘制新路径。路径存储为LinkedList,并在汽车被触摸时清除。
我想如果通过触摸事件清除路径,而计时器线程正在更新汽车沿路径的移动,这就是发生错误的地方(两个线程访问这个列表时也可能出现类似的其他问题。
我的问题是,在 Java 中,处理这个问题的最佳方法是什么?是否应该使用特定类型的列表而不是 LinkedList,或者在 c++ 中是否存在诸如 Mutex 之类的对象,我可以在使用它的同时保护该列表?