java吧 关注:1,252,703贴子:12,738,450
  • 6回复贴,共1

求助大神 java实现共享内存读写实例

只看楼主收藏回复

看网上给的都是使用MappedByteBuffer来实现文件映射共享内存读写,也找到了一个实例,但是他实现的是可以在文件中写入文本,映射到共享内存中,但是现在需要在内存的特定位置放入不同类型(包含整形、浮点型、字符串等)多种类型的数据,有没有大神可以给个demo,网上找了一圈了,也没有看见 求助求助求助


IP属地:江苏1楼2021-02-05 16:19回复
    固定内存用c语言,而且不同都是虚拟内存,你这个固定内存只能单进程内部;


    IP属地:湖北2楼2021-02-06 02:58
    回复
      不同进程都是虚拟内存,固定内存只能进程内部使用。


      IP属地:湖北3楼2021-02-06 03:01
      回复
        MappedByteBuffer应该也能实现,但是存储的数据必须是热数据,冷数据就不行了。
        我记得rocketmq就是用MappedByteBuffer来映射磁盘文件,刷盘时写入的数据会同时存在于pageCache(内存)和磁盘。读取的时候只要pagecache还在就不用读取磁盘,可以直接读取pagecache获取文件数据。


        IP属地:江西4楼2021-02-06 10:02
        回复
          使用MappedByteBuffer 等同于可以通过pagecache间接实现共享内存。
          具体实现的话代码量应该不多,但是对操作系统要了解程度和自身水平比较高,一般初学者很难。


          IP属地:江西5楼2021-02-06 10:07
          回复
            如果业务场景合适的话,建议通过redis去解决,比较简单。


            IP属地:江西6楼2021-02-06 10:08
            收起回复