小编use*_*844的帖子

两个线程访问相同的LinkedList

我是Java的新手,在尝试实现一个简单的游戏时遇到了一个问题.目前游戏的前提是,计时器用于添加汽车,并且还更频繁地更新汽车的运动.可以通过触摸选择汽车,并通过绘制它的路径来指示.更新功能将沿着路径移动汽车.

现在,游戏因IndexOutOfBoundsException而崩溃,我几乎可以肯定这是因为偶尔重新选择汽车时,会擦除当前路径,并允许绘制新路径.该路径存储为LinkedList,并在触摸汽车时清除.

我想如果路径是通过触摸事件清除的,而计时器线程正在更新汽车沿路径的移动,这就是错误发生的地方(两个线程访问这一个列表时也可能出现类似的其他问题.

我的问题,在Java中,处理这个问题的最佳方法是什么?是否存在我应该使用的特定类型的列表而不是LinkedList,或者是否存在c ++中的Mutex等对象,我可以在使用它时保护此列表?

java android thread-safety

2
推荐指数
1
解决办法
203
查看次数

标签 统计

android ×1

java ×1

thread-safety ×1