JAVA RMI Server端的自身有并发访问机制吗

code-artist 2009-02-13 04:39:05
假如有很多线程或进程对RMI Server的同一个注册类的同一个方法并发调用,RMI Server端会开启单个线程去接受请求调用吗(或者说自身带有线程池没有)?还是所有顺序逐一访问的,处理完一个请求后,接着才第二个?
不知说明白没有。望指教!!!
...全文
398 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinahehe2000 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 eswn 的回复:]
这个是单线程的(好像试过),因为Sun封装了RMI的实现,所以,我们不需要考虑它的线程问题,如果觉得一个方法不想让它有多线程同步访问,把那个方法中的对象同步就可以了.
[/Quote]

既然你说“单线程的”,那还同步方法中的对象做什么?
还有,我从另一个地方摘过来一段,但我也不确定正确性
“远程方法调用(Remote Method Invocation) RMI使你能够调用在另外一个JVM上运行的对象的方法。当你使用RMI调用一个远程方法时,这个方法的参数被打包(装配)成一个比特流,并且穿越整个网络到达远程JVM,在那里它会被解包(分解)并传递给远程方法。
当RMI代码调用了你的远程对象时,这个调用发生在哪一个线程?你并不知道,但绝对不是你创建的那个线程——你的对象被RMI管理的一个线程所调用。RMI创建了多少个线程?在许多RMI线程中,同一个对象的同一个方法是不是有可能同时被调用4?
一个远程对象必须去守卫两种线程安全风险:对那些可能会与其他对象共享的状态进行适当调节,应正确地对远程对象本身进行调控(因为相同的对象可能同时被多个线程调用)。比如servlets,RMI对象应该对同时发生的多个调用有所准备,并且必须提供它们自己的线程安全。”
http://blog.csdn.net/antimatterworld/archive/2007/07/27/1712490.aspx
eswn 2009-02-16
  • 打赏
  • 举报
回复
这个是单线程的(好像试过),因为Sun封装了RMI的实现,所以,我们不需要考虑它的线程问题,如果觉得一个方法不想让它有多线程同步访问,把那个方法中的对象同步就可以了.

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧