相关文章推荐
活泼的硬盘  ·  python - How do you ...·  10 月前    · 
深沉的山羊  ·  使用“optimize ...·  1 年前    · 
礼貌的椰子  ·  c# - I am getting ...·  1 年前    · 
茫然的海豚  ·  CheckBox.CheckStateCha ...·  1 年前    · 
  1. 采用socket的方式:调用共享内存 你得用VC写个DLL,JAVA调用。

  2. SOCKET是最好的选择。共享内存好像也是SOCKET实现的。
    用VC写DLL然后调用。分布式最终也是用的SOCKET。缓存等等

  3. 10年我弄过 进程间通信;进程间通信 VC有一种就是SOCKET;SOCKET 本地 不走局域网的;JAVA和VC。

  4. 用缓存啊,就是中间层

java中没有专门的共享内存方法。
MappedByteBuffer 是为了文件映射,加快大文件读写速度。
共享内存,有许多种实现方法,在java中可以使用文件映射来实现共享内存,缺点是文件映射必须有文件,同时有其他开销。
文件映射的方式读写文件其实是对内存的操作,所以速度与读写内存是一致的,多余的开销在内存数据还是会同步到硬盘的,这个开销是异步的,影响不大。

共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。

直接开共享内存,c++和java都能用
java 开服务,c++都调用这个服务, socket
是啊,这个多简单。。。词典数据是保存到一个磁盘文件中的吧;C++和java都用mmap把词典映射进来,看到的就是同一份数据。。。

Windows共享内存

Java共享内存

VC/C/C++共享内存

JNA实现调用dll与C共享内存

Ringbuffer实现共享内存调度

解决方案 1. 采用socket的方式:调用共享内存 你得用VC写个DLL,JAVA调用。 2. SOCKET是最好的选择。共享内存好像也是SOCKET实现的。 用VC写DLL然后调用。分布式最终也是用的SOCKET。缓存等等10年我弄过 进程间通信;进程间通信 VC有一种就是SOCKET;SOCKET 本地 不走局域网的;JAVA和VC。用缓存啊,就是中间层java中没有专门
` Java IO `操作的`BufferedReader` 、 `BufferedInputStream` 等相信大家都很熟悉,不过在 ` Java NIO `中引入了一种基于` MappedByteBuffer `操作大文件的方式,其读写性能极高。 `MappedByteBuffer` 为 共享内存 缓冲区,实际上是一个磁盘文件的内存映射,实现内存与文件的同步变化,可有效地保证 共享内存 的实现。
VC 内存共享是一种常用的实现图像传输的方式。此方法充分利用了电脑的内存资源,通过映射内存地址来实现两个进程之间的数据共享,以实现高效地数据传输。 VC 内存共享的实现过程,首先是创建一个 共享内存 的对象。为确保进程的数据安全性,应设置该对象的安全属性。之后,需要打开该对象,并映射到进程的地址空间中,以便进程间互相访问和修改 共享内存 的内容。对于图像传输,可以将图像数据存储在 共享内存 区域中,然后通过映射的内存地址进行数据传输。 对于接收方,其需要先打开 共享内存 的对象,并在内存映射数据时,需要注意映射的起始地址和长度等参数的设置。同时,接收方也需要及时地读取 共享内存 中的数据,以保证传输的数据完整性和实时性。 总的来说, VC 内存共享实现图像传输的方法具有高效、安全、可靠和操作简便的优点。但对于大规模的图像传输,也应注意 共享内存 对象的大小限制及内存的分配与释放问题。