考虑以下情况:
main() {
ClassA insA = new ClassA();
insA.run();
}
ClassA.run() {
for(;;) {
RMI.call();
blahblah();
}
}
RMI.call()是一个 RMI 函数,它阻止线程使用Semaphore.acquire(),直到发生某些事情(在另一个线程中)。
问题是:我怎样才能安全地杀死所有线程?
如下定义一个stop()函数ClassA:
stop() {
Thread.currentThread.interrupt();
}
并从外部(例如main())调用它不会中断 RMI 调用线程。
如何中断原始线程,以便正确退出代码?
还是有其他安全出口的方式?