1
在下面的發佈代碼中,我從工作線程讀取的fie中讀取時間戳數據。我從fie解析時間戳並將其傳遞給timerTask
,如下所示。我期望結果是Engine Time(ms):
的一個讀數,然後是systemTime(ms):
的讀數。但在每次運行中,我都會以不同的順序接收輸出?如下所示。timerTask無法在(ms)中設置的特定時間後啓動
請提供解釋fr。
後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
謝謝你O rthe答案,卜似乎它的Android爲主。我在java中有這個問題。是否有任何解決方案 – user2121 2014-12-03 14:29:22
你包括Android標籤多數民衆贊成那就是爲什麼我回答你,你應該具體..任何方式看看這個鏈接,它可能會幫助你http://stackoverflow.com/questions/2258066/java-run-a -function-後一個特定的用戶號碼的秒\ – 2014-12-03 14:47:32