如果主机 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/