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

解决方案采用socket的方式:调用共享内存 你得用VC写个DLL,JAVA调用。SOCKET是最好的选择。共享内存好像也是SOCKET实现的。用VC写DLL然后调用。分布式最终也是用的SOCKET。缓存等等10年我弄过 进程间通信;进程间通...

解决方案

  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把词典映射进来,看到的就是同一份数据。。。

  • 共享内存实现原理
    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

本文标题为:Java与VC/C/C++共享内存

基础教程推荐