2

假设我在一个程序中构建了一个链表,然后在另一个程序中我必须访问它。我怎样才能做到这一点?

我试图在一个程序中使用 Java 中的全局链表数据结构,但我似乎无法在另一个程序中访问它。我猜想在下一个程序中无法获得对链表的引用。

我该如何解决这个问题?

4

2 回答 2

1

您基本上不能只是在一个程序中构建一个链表并将其完全传递给另一个程序,主要是因为两个程序的堆内存将不同。

在此处输入图像描述 进程地址空间

所以基本上你必须使用某种通信机制来实现这一点。

1. 首先,您可以在一个程序中构建链接列表,并使用 RPC 调用一次只发送一个节点到其他程序

2 或使用链接列表所在的共享内存。通过使用某种机制(例如placement new.

当您在 JVM 中运行时。您正在跨 Java 进程共享 Java 堆,我认为您可以使用基于 RMI 的机制来做到这一点。

于 2012-06-26T01:40:29.297 回答
0

如果您只需要在 Java 程序中生成链表,然后将其传递给另一个程序,您可以通过将链表放入外部形式来实现。这可以是 Java 序列化对象(其他程序必须解释),也可以是 XML、JSON、您自己设计的自制格式或任何数量的其他格式。然后可以通过进程间通信(@yair 在他的评论中提供的链接中描述的文件、套接字或其他机制)将其传递给其他程序。

如果您需要 Java 程序和其他程序之间的某种双向交互,那么某种远程过程调用可能是最简单的 ipc 机制。

于 2012-06-26T02:01:44.533 回答