0
import java.util.Date;
import javax.xml.crypto.Data;
public class Task1 {
public static void main(String[] args) {
// run in a second
final long timeInterval = 4000;
Data now = null;
Runnable runnable = new Runnable() {
public void run() {
while (true) {
// ------- code for task to run
System.out.println("Hello !!"+new Date());
for(int i=0;i<10000;i++){
System.out.println("Hello !!");
}
// ------- ends here
try {
Thread.sleep(timeInterval);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
Thread thread = new Thread(runnable);
thread.start();
}
}
我閱讀了有關threads.I的調度想了解該代碼運行正常,並在4秒後,執行線程,但如果通過循環假設所花費的時間出來的教程爲1秒,那麼總時間將是1 + 4 5秒。 我不想執行器服務。只是正常的線程類。任何人都可以解釋這個程序是如何工作的。在了Thread.sleep java的時間程序器
我在一次採訪中被問到了這個問題,解決這個問題最好的辦法是在一定的時間間隔後執行一個線程,而不需要執行者 – coder25
@ coder25顯然最好的方法是使用ScheduledExecutorService,或者做它做的事情, System.nanoTime()在開始時計算每次應該休眠多長時間以避免累積錯誤。如果掛鐘很重要,可以使用System.currentTimeMillis() –