當我使用ScheduledExecutorService
(或ExecutorService)並提交Runnable時,我的關閉鉤子永遠不會被調用。當然,這個程序掛起:ScheduledExecutorService和Shutdown Hook
public class App {
static ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
static {
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
exec.shutdownNow();
}
});
}
public static void main(String[] args) {
exec.schedule(new Runnable() {
@Override
public void run() {
}
}, 10, TimeUnit.SECONDS);
}
}
由於執行的線程不是一個守護進程,我預計要調用的關閉掛鉤,但事實並非如此。任何想法爲什麼?
爲什麼你認爲關閉掛鉤會被調用? –
_I不會期望關閉鉤子被調用,但它不是._是不是你期望的? –
@SotiriosDelimanolis我編輯他的問題,因爲我認爲這是一個錯字。 –