java - RMI 环回 : Same thread?

标签 java multithreading rmi

如果主机 A 上的线程 jack 调用主机 B 上的 RMI 方法 foo,并且主机 B 在该方法中调用方法 bar在主机 A 上,bar 会被线程 jack 执行吗?

我认为这将是另一个线程,但我认为这在理论上是可能的。

为什么会有人想要它?一方面,锁定重入将是一项方便的功能。

最佳答案

简短的回答:这肯定是一个不同的话题。

长一:想一想。当jack@A宿主调用foo()@B宿主时,jack@A线程阻塞等待foo() 响应。所以当foo()@B调用bar()@A时,jack@A保证还在等待,所以没有办法bar() 将由它处理。

另请注意,在服务器端有一个单独的线程池用于处理 RMI 客户端调用。所以很可能您的 jack 线程实际上是一个应用程序线程,RMI 无法访问它。除非 jack 线程调用 foo() @B 也是由外部 RMI 调用发起的(回调太多,panic)。

关于java - RMI 环回 : Same thread?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8081571/

相关文章:

java - Spring 4.1 静态内容配置

c# - 停止使用 ThreadPool.QueueUserWorkItem 创建的具有特定任务的线程

python - 只有一个底层锁的读写锁?

c - 当客户端崩溃时,recv 返回 0 而不是 -1

java - 远程对象实现中的非远程方法

java - 关闭 RMI 注册表

java - RMI 方法中的参数

java - 我如何在 asynctask 中创建 arrayadapter。执行后

java - 用eclipse测试java程序的内存消耗

java - 为悬浮 Atmosphere 请求返回 JSONP