當我運行的代碼我使用util.Timer
java.util.Timer中 - 當主線程結束
public class CheckDBAccessListOpenAccesses extends TimerTask {
public static void main(String[] args) {
CheckDBAccessListOpenAccesses object = new CheckDBAccessListOpenAccesses();
}
private CheckDBAccessListOpenAccesses() {
System.out.println("Start");
Timer whatAccessAreOpen = new Timer();
whatAccessAreOpen.scheduleAtFixedRate(this, TimeUnit.MINUTES.toMillis(1), TimeUnit.MINUTES.toMillis(1));
Thread.sleep(100*60*1000);
System.out.println("finish");
}
@Override
public void run() {
System.out.println("one minute");
}
}
這個簡單的代碼過程中不斷的過程將永遠運行下去。 我希望進程在主線程結束時停止。爲什麼Timer保持進程活着?有沒有辦法阻止它?
謝謝你的回答,你的意思是定時器#時間表將在同一個線程中運行作爲主要功能? –
@NoIdeaForName不用客氣。文檔不是特定的,但很明顯'schedule'方法不會與調用線程在同一個線程中運行,否則會阻塞 - 這不會非常有用!可能你想要的是'Timer'的實例在主線程中可見,所以你可以在完成時調用'cancel'。 – Mena