Java与VC/C/C++共享内存

解决方案

  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

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

Ringbuffer实现共享内存调度

Java与VC/C/C++共享内存

上一篇:24课时VC之思考->文档与视图结构


下一篇:西门子伺服驱动器6SE70上电无显示故障分析