我有一個擴展線程的XYZ類,它也是一個單例(是的,我的應用程序需要它)。java:停止Singleton線程
在run方法,我有這樣的事情:
public void run() {
service.start();
}
花費service.start()是巨大的時間。 此外,我的應用程序並不總是需要線程運行,但不能提前做出決定,所以在啓動應用程序時,我正在啓動該線程。
現在,當應用程序不需要線程時,它會很快完成,我需要做的就是等待線程死亡。
我試圖使用stop()方法,但知道它已被棄用。
但是,運行線程如何檢測到它被中斷? – sachinpkale
這是[單向](http://stackoverflow.com/questions/3194545/how-to-stop-a-java-thread-gracefully?rq=1) - 這是[另一個](http:// stackoverflow.com/a/8649955/829571)。但是@MarkoTopolnik指出,不知道'service.start()'在做什麼,很難說哪種解決方案會更好。理想情況下,如果它拋出InterruptedException(並正確處理它),則可以簡單地中斷它。 – assylias
爲什麼所有這些例子都假設線程正在其運行方法中執行循環? – sachinpkale