Java 中共享内存的任何概念

2022-09-02 00:07:42

AFAIK,Java中的内存基于堆,从堆中将内存动态分配给对象,并且没有共享内存的概念。

如果没有共享内存的概念,那么Java程序之间的通信应该很耗时。在C中,与其他通信模式相比,通过共享内存进行进程间通信更快。

如果我错了,请纠正我。另外,2个Java程序相互通信的最快方式是什么。


答案 1

几种方法:

此处此处的详细信息以及一些性能测量。


答案 2

由于没有官方的 API 来创建共享内存段,因此您需要求助于帮助程序库/DDL 和 JNI 来使用共享内存让两个 Java 进程相互通信。

在实践中,这很少是一个问题,因为Java支持线程,因此您可以在同一个Java VM中运行两个“程序”。它们将共享相同的堆,因此通信将是即时的。另外,由于共享内存段的问题,您不会收到错误。