JAVA如何实现进程间共享对象?

04-09-27 ziming0336
在同一台机子上的两个JAVA进程,如何实现共享对象呢?

试过RMI,但如果发送的参数不可序列化也没用,例如传送一个SOCKET对象.

现在我的问题是想两个进程都能共享一个SOCKET对象,还有HASHMAP等不可序列化的对象,在JAVA里有办法吗?

enhydraboy
2004-09-28 16:48
共享内存应该可以吧

arthas1982
2004-10-08 16:46
有难度阿,在进程中共享对象,JVM允许这么做吗?如果硬要实现的话,必须考虑这个对象在两个进程中的生命周期,可是两个进程不相关的阿,只有把这个对象永久化了。

blues
2004-10-26 23:42
这是个很奇怪的需求.让我们暂时把"怎么实现"放在一边(当然实现上是有难度的),先来谈谈:为什么有这样的需求?

就好比说:如何让我垂直于会议室中的白板?当然也可以实现,但我感觉根本就没有这样的需求,所以我不用考虑如何让我垂直于会议室的白板.

Azure_2003
2004-10-27 13:56
在java里面进程之间是不能共享不可序列化的对象的,只能通过文件、数据库、rmi、corba、jms来共享可序列化的对象。java语言避免直接操作内存,所以它不能象c和c++那样可以直接在内存里面查找数据和修改数据。

banq
2004-10-31 17:54
>在同一台机子上的两个JAVA进程,如何实现共享对象呢?

如果我没有理解错的话,通过Singelton实现,那么注意这时带来的性能陷井。

banq
2004-10-31 17:58
这个帖子正好回答了:

http://www.jdon.com/jive/thread.jsp?forum=121&thread=17133

这个吵吵闹闹的帖子。

在那个吵闹的帖子中,其实讨论方向有些偏了,Singleton创建的性能小陷井是次要的,重要的是本例中案例。

如果以后我碰到这样代码案例,我会贴在这里。

newjoy
2004-11-01 15:35
to banq: 这两个帖子好像没有关系吧?

ziming0336 问得是两个进程之间共享变量。

不过我确实想不出两个进程共享“SOCKET”对象的用处?

猜你喜欢