解决方案
-
采用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把词典映射进来,看到的就是同一份数据。。。
- 共享内存实现原理
http://blog.csdn.net/al_xin/article/details/38602093 - 今天我们领导给了我一个非常棘手的问题:他用vc创建一个共享内存,然后我用java对它进行读写
http://bbs.csdn.net/topics/80204916 - 不同语言,系统通过共享内存方式实现信息交互
http://www.cnblogs.com/swbzmx/p/5992679.html - 不同编程语言之间的通信方式有哪些?
https://www.v2ex.com/t/283323 - 进程间通信 内存映射和共享内存的区别
https://zhidao.baidu.com/question/1959858630038947540.html - RGB颜色代码int值
http://blog.csdn.net/wds1181977/article/details/43487809 - C#中RGB颜色值与整型值的转换
http://blog.sina.com.cn/s/blog_4c6e822d01017xmq.html - java 十六进制颜色对照表
http://www.cnblogs.com/jxldjsn/p/5123777.html - Java 结构体之 JavaStruct 使用教程<二> JavaStruct 用例分析
http://blog.csdn.net/jazzsoldier/article/details/75633520 - [转]java.nio.ByteBuffer 类 缓冲区
http://www.cnblogs.com/freeliver54/archive/2011/08/10/2133382.html - JavaStruct.jar
http://download.csdn.net/download/smallx_i/9560378
Windows共享内存
- Windows共享内存示例
http://www.cnblogs.com/dongsheng/p/4460944.html - Windows核心编程之共享内存
http://blog.csdn.net/u011677067/article/details/53112413 - Windows环境下利用“共享内存”实现进程间通信的C/C++代码
http://blog.csdn.net/stpeace/article/details/39534361
Java共享内存
- Java共享内存原理
http://www.cnblogs.com/swbzmx/p/5992247.html - java 并发性和多线程 – 读感 (二 线程间通讯,共享内存的机制)
http://www.cnblogs.com/edenpans/p/6020113.html - java*享内存的实现
http://blog.csdn.net/gaoxueyi551/article/details/32973949 - 关于Java共享内存一个疑惑的地方,一定要有对应的磁盘文件么
http://bbs.csdn.net/topics/390947849 - java中的mmap实现–转
http://www.cnblogs.com/davidwang456/p/3853977.html - Java文件映射[mmap]揭秘
http://blog.csdn.net/kabini/article/details/4286737 - 关于MappedByteBuffer资源释放问题
http://blog.csdn.net/zhuyijian135757/article/details/38501121
VC/C/C++共享内存
- 如何理解“不要通过共享内存来通信,而应该通过通信来共享内存”?
https://segmentfault.com/q/1010000008937789 - 关于标准c++的共享内存
http://bbs.csdn.net/topics/390954949 - C++通过共享内存实现进程间通信
http://www.360doc.com/content/15/0112/23/12414131_440278547.shtml - 将C++对象保存到共享内存上
http://www.cnblogs.com/yangru/p/3805192.html - c++与c#共享内存问题
http://bbs.csdn.net/topics/320026903
JNA
- jna百科
https://baike.baidu.com/item/JNA/8637274?fr=aladdin - JNA的使用经历
http://blog.csdn.net/u011124317/article/details/52717280 - JAVA JNA 调用DLL示例参考
https://www.cnblogs.com/xxlgm/p/3788759.html - JNA:JAVA调用DLL 超详细代码实战
http://blog.csdn.net/gcangle/article/details/8504629 - JNA—JNI终结者
http://blog.csdn.net/shendl/article/details/3589676/ - NI的替代者—使用JNA访问Java外部功能接口
https://www.cnblogs.com/lanxuezaipiao/p/3635556.html - 关于使用JNA爬过的坑,JNA路径问题
http://blog.csdn.net/sychel/article/details/54884132 - JNA简介及使用
http://forestqqqq.iteye.com/blog/1941631 - 【翻译】JNA调用DLL 包括C和JAVA共享内存
https://www.cnblogs.com/hundan/p/3344826.html?utm_source=tuicool - JNA编程之二:数据类型映射
http://blog.163.com/ljf_gzhu/blog/static/131553440201241103848265/ - JNA Examples
http://www.eshayne.com/jnaex/index.html - 深入解析JNA—模拟C语言结构体
http://blog.csdn.net/shendl/article/details/3599849 - C语言封装dll
http://blog.csdn.net/x356982611/article/details/40340809 - c语言怎么调用dll文件?
https://zhidao.baidu.com/question/479621352.html - WORD 和DWORD
http://blog.csdn.net/godsight/article/details/53039483 - win32下进程间通信(共享内存)实例分析
http://www.jb51.net/article/52306.htm - C 指针
http://www.runoob.com/cprogramming/c-pointers.html - memset用法详解
https://www.cnblogs.com/PegasusWang/archive/2013/01/20/2868824.html - c语言中通过指针将数值赋值到制定内存地址
https://www.cnblogs.com/haore147/p/3647192.html - 内存操作函数(C)
http://blog.csdn.net/lzrocking/article/details/8103320 - C语言指针1-定义
http://blog.csdn.net/hbuxiaoshe/article/details/5785446 - 如何给指定的内存地址赋值或取值?
http://bbs.bccn.net/thread-467737-1-1.html
JNA实现调用dll与C共享内存
- C 指针(通过指针读写数据的重中之重)
http://www.runoob.com/cprogramming/c-pointers.html - JNA编程之二:数据类型映射 (java与C在jna调用中的数据类型转换)
http://blog.163.com/ljf_gzhu/blog/static/131553440201241103848265/ - 深入解析JNA—模拟C语言结构体(调用dll定义的结构体,使数据保持模块化)
http://blog.csdn.net/shendl/article/details/3599849 - Example #6: Send an Array of Structs to C(结构体数组基本满足java实体转换需要)
http://www.eshayne.com/jnaex/index.html?example=6 - VS2010,通过dumpbin工具查看DLL文件中函数接口是否封装成功
http://blog.csdn.net/fengbingchun/article/details/43956673
Ringbuffer实现共享内存调度
- struct和typedef struct
https://m.2cto.com/kf/201402/280256.html