В приведенном ниже коде я читаю данные метки времени из файла, который читается рабочим потоком. Я анализирую метку времени из файла fi и передаю ее в timerTask
, как показано ниже. Я ожидал, что результатом будет одно чтение для Engine Time(ms):
, за которым следует чтение для systemTime(ms):
. но при каждом запуске я получаю вывод в другом порядке? как показано ниже.
пожалуйста, объясните это.
static TimerTask timedTask = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("timed task");
}
};
private static void processFile(File dataFile) throws IOException {
// TODO Auto-generated method stub
Timer timer = new Timer();
for (int i = 1; i <= logfile.getTotalLines(); i++) {
System.out.println("Engine Time(ms): " +
logfile.getFileHash().get(i).getTimeStampInMilli());
timer.schedule(new TimerTask2(), (long)
logfile.getFileHash().get(i).getTimeStampInMilli());
}
timer.cancel();
}
результат после первого запуска:
Engine Time(ms): 0.012999999999
Engine Time(ms): 0.044000000002
Engine Time(ms): 0.044000000002
Engine Time(ms): 0.063999999998
Engine Time(ms): 0.074000000001
Engine Time(ms): 0.084000000003
Engine Time(ms): 0.093999999997
Engine Time(ms): 0.093999999997
Engine Time(ms): 0.103999999999
Engine Time(ms): 0.114000000001
systemTime(ms): 1417614184001
результат после второго запуска:
Engine Time(ms): 0.012999999999
Engine Time(ms): 0.044000000002
Engine Time(ms): 0.044000000002
Engie Time(ms): 0.063999999998
Engine Time(ms): 0.074000000001
systemTime(ms): 1417614304811
systemTime(ms): 1417614304811
systemTime(ms): 1417614304811
systemTime(ms): 1417614304811
systemTime(ms): 1417614304811
Engine Time(ms): 0.084000000003
Engine Time(ms): 0.093999999997
systemTime(ms): 1417614304811
Engine Time(ms): 0.093999999997
systemTime(ms): 1417614304811
Engine Time(ms): 0.103999999999
systemTime(ms): 1417614304811
Engine Time(ms): 0.114000000001
systemTime(ms): 1417614304811