Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的代码在这个计时器代码中循环了多长时间?_Java_Random_Timer - Fatal编程技术网

Java 我的代码在这个计时器代码中循环了多长时间?

Java 我的代码在这个计时器代码中循环了多长时间?,java,random,timer,Java,Random,Timer,我用上面的代码得到了我想要的结果。但我真的希望我的计时器从30秒降下来。我想让它循环30秒。在尝试这一点时,我注意到当我编写if(requestTime==0)并在其中执行相同的操作时,我总是得到2张打印。这就像我的代码在停止前只运行了1次。但是当我用1做的时候,它工作得非常好,除了我不确定它是否给了我精确工作5秒的结果,或者它是在5秒之前停止的?0出现问题的原因是什么?根据文档,大约5秒(加上或减去一些未指定和可能不确定的时间),因为(在开始时)N=5并且您的周期=1000所以5000毫秒。尝

我用上面的代码得到了我想要的结果。但我真的希望我的计时器从30秒降下来。我想让它循环30秒。在尝试这一点时,我注意到当我编写if(requestTime==0)并在其中执行相同的操作时,我总是得到2张打印。这就像我的代码在停止前只运行了1次。但是当我用1做的时候,它工作得非常好,除了我不确定它是否给了我精确工作5秒的结果,或者它是在5秒之前停止的?0出现问题的原因是什么?

根据文档,大约5秒(加上或减去一些未指定和可能不确定的时间),因为(在开始时)
N=5
并且您的
周期=1000
所以
5000毫秒
。尝试
N=30
30秒。我不知道什么是
requestTime

您遗漏了代码的关键部分,例如您询问了关于requestTime的问题,但没有包括任何关于它的内容。我唯一想告诉您的是,由于您的N>0逻辑,您的任务运行了
N+1
次。它从N运行到0,因此对于N=5,运行6次。初始延迟为0时,它运行5秒,但有6次迭代。因为当N(计数器)达到0时,您取消计时器。我仍然不知道你在问什么。我在问如果我使用上面的代码,计时器(…somestuffinhere…)中的代码是否执行了5秒钟。如果我像这样更改if部分,它是否执行了6次if(N==0)@Elliott Frisch
 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);