簡體   English   中英

如何停止Java中的線程?

[英]How can I stop the Thread in Java?

我想啟動一個線程(在Java中)。 該線程應每5分鍾執行一次。 這個線程,啟動方法,如果方法返回true,我要停止線程。 我無法做到這一點。 這是我的代碼:

Timer timer = new Timer(); 
timer.schedule( new TimerTask() 
{ 
    public void run() { 
     verificaAssistenza ass = new verificaAssistenza();
     if(ass.checkAssistenza())
     //I WANT TO STOP THE THREAD
    } 
}, 0, 60*(1000*1));

只需取消TimerTask

if (ass.checkAssistenza()) {
    cancel();
    return;
}

從Javadoc:

取消此計時器任務。 如果已將任務計划為一次性執行並且尚未運行,或者尚未計划,則它將永遠不會運行。 如果計划將任務重復執行,則它將不再運行。 (如果在此調用發生時任務正在運行,則該任務將運行至完成,但將不再運行。)

如果計時器只有一個timerTask調用,則取消計時器本身:

final Timer timer = new Timer(); 

    ...
    if (ass.checkAssistenza()) {
        timer.cancel();
        return;
    }

采用:

timer.cancel();
timer.purge();

Oracle的文檔:

cancel ()終止此計時器,放棄任何當前計划的任務。

purge ()從此計時器的任務隊列中刪除所有取消的任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM