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()
我正在制作一个小游戏,其中 space-飞船每隔 x 秒开火。
在这种方法中,我会产生敌人可以发射的激光。为了计时他们的镜头 我正在使用
Executors.newSingleThreadScheduledExecutor();
但我不确定这是否正确,因为棋盘上可以同时有多个敌人-space 舰船。 (因为它使用一个线程,然后在再次使用该线程执行该任务之前等待 x 秒)。
如此总结:这是为多个对象计时事件的正确方法还是一次只对一个对象起作用。
还有一些性能更优化的版本,但是这个方法适合一开始。
ScheduledFuture<?> future = s.scheduleAtFixedRate(shoot, 0, enemy.getRate(), TimeUnit.SECONDS);
将立即安排一次,然后每 getRate()
秒安排一次,直到您调用 future.cancel()
。
一次只评估一个镜头,如果计算速度相当快,那很好,并且您不会在 Runnable
.
Thread.sleep()