Executors.newSingleThreadScheduledExecutor() 是否适用于多个对象?

Is Executors.newSingleThreadScheduledExecutor() applicable for multiple objects?

我正在制作一个小游戏,其中 space-飞船每隔 x 秒开火。

在这种方法中,我会产生敌人可以发射的激光。为了计时他们的镜头 我正在使用

Executors.newSingleThreadScheduledExecutor(); 

但我不确定这是否正确,因为棋盘上可以同时有多个敌人-space 舰船。 (因为它使用一个线程,然后在再次使用该线程执行该任务之前等待 x 秒)。

如此总结:这是为多个对象计时事件的正确方法还是一次只对一个对象起作用。

还有一些性能更优化的版本,但是这个方法适合一开始。

ScheduledFuture<?> future = s.scheduleAtFixedRate(shoot, 0, enemy.getRate(), TimeUnit.SECONDS); 

将立即安排一次,然后每 getRate() 秒安排一次,直到您调用 future.cancel()

一次只评估一个镜头,如果计算速度相当快,那很好,并且您不会在 Runnable.

中调用 Thread.sleep()