我有一個要求,我想啓動一個輪詢器,一直運行,直到機器重新啓動或進程被殺死。現在,我嘗試使用shell腳本從主方法啓動輪詢器,但問題是隻要主方法完成執行,輪詢器也停止工作,因爲我沒有使用任何服務器來實現此目的。如何保持我的程序活着只要一個守護進程線程正在運行?
我聽說了一些關於daemon threads
,但我想知道如何創建一個守護線程,它將永遠運行,並幫助我的輪詢器也運行。
UPDATE:
public class SomeThread extends Thread {
@Override
public void run() {
UnitPoller unitPoller = new UnitPoller();
unitPoller.doPolling();
}
public static void main(String[] args) {
SomeThread someThread = new SomeThread();
someThread.setDaemon(true);
someThread.start();
}
}
以上就是我更新的類,現在每當我從主方法執行此線程,它創建一個線程,但只要主要方法執行完成,我的輪詢停止工作,隨着JVM關閉。
有了這個問題,我該怎麼做。
感謝
這沒有爲我工作。請檢查我的更新。 –
@ M.J .: Thread.setDaemon()的JavaDoc說:「當只有運行的線程都是守護進程線程時,Java虛擬機退出。所以如果你的線程是一個守護進程,JVM將退出。你需要的是一個非守護線程,如果你想讓JVM保持運行。 –
在澄清問題後,如何刪除結果不正確的部分? – oberlies