posts - 12, comments - 0, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          abstract class MappedByteBuffer extends ByteBuffer

          Posted on 2012-01-06 14:09 cooperzh 閱讀(286) 評論(0)  編輯  收藏 所屬分類: java.lang.*public
          MappedByteBuffer 將文件直接映射到虛擬內(nèi)存。可以映射整個文件,如果文件太大,可以分段指定映射。

          通常通過FileChannel.map()方法創(chuàng)建。
          映射之后,通過MappedByteBuffer 訪問文件內(nèi)容,比到硬盤上去讀取文件要快很多。

          FileChannel.map()方法創(chuàng)建時指定方式:
          MapMode.READ_ONLY,嘗試修改緩沖區(qū)則報異常ReadOnlyBufferException
          MapMode.READ_WRITE,共享緩沖區(qū),所有訪問的程序都可讀可寫,但寫完是否其他程序立即看到變更,未知
          MapMode.PRIVATE,創(chuàng)建副本,所有修改對同時訪問的其他程序不可見

          protected:
          volatile boolean isAMappedBuffer;
          MappedByteBuffer(int mark,int pos,int lim,int cap,boolean mapped);
          MappedByteBuffer(mark,pos,lim,cap);

          private方法:
          checkMapped(); 
          pagePosition();

          public final方法:
          isLoaded(); 緩存區(qū)內(nèi)容是否處于物理內(nèi)存中
          load(); 將緩沖區(qū)內(nèi)容從虛擬內(nèi)存加載到物理內(nèi)存
          force(); 當緩存區(qū)是MapMode.READ_WRITE模式時,將緩存區(qū)內(nèi)容寫入存儲設(shè)備中

          private native方法:
          isLoaded0();
          load0();
          force0();








          主站蜘蛛池模板: 潞城市| 浦北县| 梓潼县| 广河县| 安多县| 于都县| 武川县| 卓尼县| 乌拉特前旗| 安福县| 阜康市| 福海县| 桃园市| 西城区| 黑龙江省| 余姚市| 奉新县| 东莞市| 贞丰县| 健康| 广西| 当雄县| 武穴市| 泰和县| 大石桥市| 鄂托克前旗| 富裕县| 白沙| 开封县| 黄山市| 甘泉县| 平湖市| 钦州市| 襄汾县| 普定县| 盐池县| 新宾| 汽车| 山东省| 信宜市| 彰化市|