-
采用socket的方式:调用共享内存 你得用VC写个DLL,JAVA调用。
-
SOCKET是最好的选择。共享内存好像也是SOCKET实现的。
用VC写DLL然后调用。分布式最终也是用的SOCKET。缓存等等
-
10年我弄过 进程间通信;进程间通信 VC有一种就是SOCKET;SOCKET 本地 不走局域网的;JAVA和VC。
-
用缓存啊,就是中间层
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
内存共享实现图像传输的方法具有高效、安全、可靠和操作简便的优点。但对于大规模的图像传输,也应注意
共享内存
对象的大小限制及内存的分配与释放问题。