Java 在RMI调用中中断阻塞的线程
考虑以下情况:Java 在RMI调用中中断阻塞的线程,java,multithreading,rmi,Java,Multithreading,Rmi,考虑以下情况: main() { ClassA insA = new ClassA(); insA.run(); } ClassA.run() { for(;;) { RMI.call(); blahblah(); } } RMI.call()是一个RMI函数,它使用Semaphore.acquire()阻塞线程,直到(另一个线程中)发生某些事情 问题是:如何安全地杀死所有线程 在ClassA中定义stop()函数,如下所示:
main() {
ClassA insA = new ClassA();
insA.run();
}
ClassA.run() {
for(;;) {
RMI.call();
blahblah();
}
}
RMI.call()
是一个RMI函数,它使用Semaphore.acquire()
阻塞线程,直到(另一个线程中)发生某些事情
问题是:如何安全地杀死所有线程
在ClassA
中定义stop()
函数,如下所示:
stop() {
Thread.currentThread.interrupt();
}
并且从外部调用它(例如,main()
)不会中断RMI调用线程
如何中断原始线程,以便正确退出代码?或者以任何其他方式安全退出?检查此库:。
Thread#interrupt()将不起作用。java.net站点已关闭。以前托管在java.net上的大多数开源项目都已重新定位。