因此,在我的研究中,我發現使用計時器執行指令並執行指令,然後使線程進入休眠狀態的主要區別。Thread.sleep與定時器
遵守以下代碼
public class StkFlow {
public void event(ActionEvent e){
//do some stuff
}
public static void main (String [] args){
Timer tick=new Timer (200, event);
tick.start();
}
}
AND
public class StkFlow {
public static void main (String[] args){
while (/*Condition*/){
//Do some stuff
Thread.sleep (200);
}
}
代碼的第一片使用一個計時器,並執行一些代碼每200ms和第二片的代碼執行一些代碼,並把該線程睡200ms。不同之處在於計時器已經爲你迭代了,並且不像Thread.sleep那樣暫停線程,停止所有的處理,(這裏的主題是計時器),那麼如果你有一個循環在裏面呢,如果這個循環比較相同的對象?它會不斷創建一個這個循環的新實例嗎?如果它確實做了最終結果,比方說,如果它正在處理該循環中的一些重型指令?
E.G
public class StkFlow {
public void event(ActionEvent e){
while (0==0){
//do some heavy duty stuff
}
}
public static void main (String [] args){
Timer tick=new Timer (200, event);
tick.start();
}
}
我想知道這個代碼是如何與Java相關的... – Tom
區別在於sleep()阻止線程執行任何操作。例如,如果您是從swing事件派發線程完成此操作,那麼UI將完全無響應並被凍結。關於時間如何處理長時間任務,請閱讀javadoc。這就是它的目的。 –
我沒問過它是什麼,這個問題清楚地陳述在底部 –