Java和C++之间的共享内存

Shared memory between Java and C++

本文关键字:共享 内存 之间 C++ Java      更新时间:2023-10-16

我正在尝试用C++创建一些内存,并用Java访问它。在C++方面,我知道我可以使用shm_openmmap来获得内存区域并将一些数据写入其中。但是,我如何打开Java端的内存映射文件?有人建议使用MappedByteBuffer但它如何访问提供给shm_open的"路径"(它只存在于内存中,因此无法从中初始化File)。我可以在不使用JNI的情况下做到这一点吗?

在Linux环境中,共享内存具有特殊的内存段:

/dev/shm

shm_open中提供的名称(例如"elo320")用于创建文件

/dev/shm/elo320

这个路径可以在Java中使用。