我的代码在这个定时器代码中循环多久了?

时间:2013-12-07 22:53:55

标签: java random timer

 static int N = 5;
 public static void randomN () {
      myTimer.scheduleAtFixedRate(new TimerTask() {
              public void run() {
                     if(N > 0)
               {
                   N--;
               }
               else myTimer.cancel();
...               
some math stuff in here like addition...
if ( N == 1 ) { 
                  System.out.println( a + requests"); }
      }, 0, 1000);

我用上面的代码得到了我想要的结果。但我实际上希望我的计时器从30秒开始下降。我希望它循环30秒。在尝试时,我注意到当我编码if(requestTime == 0)并在其中执行相同的操作时,我总是得到2次打印。这就像我的代码在停止之前再运行一次。但是当我用1做它时效果很好,除了我不确定它是否给我的工作时间恰好是5秒还是早于5秒停止? 0是什么原因导致问题?

1 个答案:

答案 0 :(得分:0)

根据jitter文档大约5秒钟(加上或减去一些未指定的且可能是非确定性的Timer)因为(在开始时)N = 5和您的period = 1000所以5000 milliseconds。试试N = 30 30秒。我不知道requestTime是什么。