我一直在努力寻找答案,但我不知道我做错了什么。我正在学习如何使用 JAVA 线程。事情是我正在做一个太空飞船游戏。我有一种创建敌人的方法(这些敌人被添加到一个 ArrayList 中,该 ArrayList 被绘制以产生运动效果,效果很好)。我有另一种方法可以在这个 ArrayList 中查找那些已经死去的敌人(dead 是一个布尔值,如果敌人从屏幕上消失或被杀死,它就会变成真的),如果他们(死了)它会从 ArrayList 中删除那些(不再画)。我有一个使用 createEnemy 方法的线程(它工作正常)。现在问题来了,我需要使用这个 ereaseEnemy 方法,但它给了我和并发错误,我尝试在这两种方法上使用同步,但 ereaseEnemy 方法永远不会开始工作。不知道如何解决这个问题。我应该停止第一个线程(创建者)以使其他线程工作吗?我在这里错过了什么吗?谢谢!
删除敌人的代码
for (Enemigo enemigo1 : enemigos) {
if (!enemigo1.isEstaVivo()) { enemigos.remove(enemigo1); }
}