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实现共享内存调度

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值