如何在java中的时间限制内运行代码

时间:2014-04-05 06:28:08

标签: java

 List<Integer> execOrder = new ArrayList<>();
 do {
   flagClounter = 0;
   for (long currTime = t; currTime <= et; currTime += 60*1000) {
     for (int i = 0; i < 4; i++) {
       if (rem[i] > 0) {
         if (rem[i] > qtm) {
           execOrder.add(i + 1);
           rem[i] = rem[i] - qtm;
           flagClounter++;
         } else {
           execOrder.add(i + 1);
           rem[i] = 0;
           flagClounter++;
         }
       }
     }
   }   
 } while (/* what? */);

输出为: -

the time quantum in milliseconds:-
40000
the starttime is:-
2014-04-05 11:04:00.0
the starttime with 5 minutes added in milliseconds :-
1396676340000

the burst_time of the respective machines:-
00:01:00
00:02:00
00:01:00
00:02:00
burst_time in milliseconds:-
60000
120000
60000
120000

the scheduled id's:-

1   2   3   4   1   2   3   4   2   4

此代码是roundrobin算法的一小部分.. 在第一个for循环中,即for (long currTime = t; currTime <= et; currTime += 60*1000) 其中t是从数据库检索的时间戳(starttime),如果我将当前时间设为t,则转换为毫秒,然后该shoutld运行到et,我已定义为t+5min

rem[i]是存储在每个机器的数组中的突发时间数组。 qtm是时间片或量子,固定为40 sec算法工作正常..但在这里我需要这个代码只运行到第一个for循环中固定的时间。即,5分钟..但它只执行所有内循环一次..我不能这样做.. ,,我应该使用任何计时器功能来实时执行此操作???我希望它在用户确定的时间内运行...请帮助我...

0 个答案:

没有答案