In the below posted code, i read time stamp data from a fie which is being read by a worker thread. I parse the time stamp from the fie and pass it to the timerTask
as shown below. I expected the result to be one read for the Engine Time(ms):
followed by a read for systemTime(ms):
. but at each run i receive output in different order? as shown below.
please provide explanation fr that.
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();
}
result after first run:
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
result after second run:
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