Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在RMI调用中中断阻塞的线程_Java_Multithreading_Rmi - Fatal编程技术网

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上的大多数开源项目都已重新定位。