Pab*_*blo 0 java multithreading java-8
我有一个Java 8应用程序,我在一个线程上运行一个任务:
Thread t = new Thread(() -> { runTask();
finalizeTask(); });
t.start()
saveThread(t);
Run Code Online (Sandbox Code Playgroud)
在某些时候,从不同的线程,这个任务可能会被中断:
Thread t = getThread(); // Obtains thread t
t.interrupt();
Run Code Online (Sandbox Code Playgroud)
有了这个,我希望runTask();线路被中断,但我还是喜欢finalizeTask();运行.
如何捕获线程中断并处理它?
你最后可以使用try catch.
try {
runTask();
}
catch (InterruptedException e) {
// Log etc.
}
finally {
finalizeTask();
}
Run Code Online (Sandbox Code Playgroud)
这将确保始终执行finalizeTask.