【问题标题】:Creating a pause or waiting effect in java program在java程序中创建暂停或等待效果
【发布时间】:2014-03-26 23:31:59
【问题描述】:

我正在用 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;

【问题讨论】:

  • 睡觉总比忙着等好...

标签: java


【解决方案1】:

你听说过Thread.sleep(millis) 有什么不好的地方吗?使用cpu保持忙碌一段时间是相当浪费的。

只需使用Thread.sleep(difference);

【讨论】:

  • msmvps.com/blogs/peterritchie/archive/2007/04/26/… 这只是一种资源,但我仍然担心。在决定做什么之前,我想征求很多人的意见
  • 所有这些例子都与线程有关。看起来你没有使用线程,所以忽略它。
  • 是的,我对 Java 还很陌生,老实说不知道线程是什么。
  • 在您开始使用可能同时运行的多个代码流之前,您可以认为您的代码在单个 cpu 核心(“线程”)中运行。在这种情况下,Thread.sleep(millis) 只是指定您希望您的程序放弃 cpu 一段时间,然后让操作系统将控制权返回给您的程序。
  • 摆动计时器怎么样?
【解决方案2】:

您可以考虑使用SwingTimer

看看这个similar post

关于 Thread.sleep 是否坏的话题,请查看this post

【讨论】:

  • 很高兴能为您提供帮助,祝您好运!
猜你喜欢
  • 2019-07-18
  • 1970-01-01
  • 2011-04-14
  • 1970-01-01
  • 2014-10-09
  • 2021-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多