我正在用Java编写一个简单的钓鱼模拟器游戏。我希望每次演员表后都有一个随机生成的等待时间。当等待结束时,会发生一个随机事件(一条鱼会被抓住,一条鱼会用你的诱饵,等等)。我听说过很多关于 Thread.sleep() 的坏事,并且想知道在这种情况下什么最适合我。
目前我正在使用这样的东西
Random random = new Random();
long time = System.currentTimeMillis();
long difference = random.nextInt(9000);
boolean timeMet = false;
while(!timeMet){
if((time + difference) <= System.currentTimeMillis())
timeMet = true;
}
return event;
您可以考虑使用SwingTimer。
看看这个类似的帖子。
关于Thread.sleep是否不好的话题,请查看这篇文章。
你听说过Thread.sleep(millis)
什么不好? 使用 CPU 保持忙碌一段时间是非常浪费的。
只需使用Thread.sleep(difference);