<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Flyingis

    Talking and thinking freely !
    Flying in the world of GIS !
    隨筆 - 156, 文章 - 16, 評論 - 589, 引用 - 0
    數據加載中……

    文件加鎖基礎

    作者:Flyingis

        文件加鎖是
    JDK1.4引入的一種機制,它允許我們同步訪問某個作為共享資源的文件。競爭同一文件的兩個線程可能在不同的Java虛擬機上,或者一個是Java線程,另一個是操作系統中的某個本地線程。文件鎖對其他的操作系統進程是可見的,因為Java的文件加鎖直接映射到了本地操作系統的加鎖工具。

    通過對FileChannel調用tryLock()lock(),就可以獲得整個文件的FileLock。特殊的是,SocketChannel/DatagramChannel/ServerSocketChannel不需要加鎖,因為它們是從單進程實體繼承而來,我們通常不在兩個進程之間共享網絡的socket

    tryLock()是非阻塞式的,它設法獲取鎖,但如果不能獲得,例如因為其他一些進程已經持有相同的鎖,而且不共享時,它將直接從方法調用返回。

    lock()是阻塞式的,它要阻塞進程直到鎖可以獲得,或調用lock()的線程中斷,或調用lock()的通道關閉。

    對獨占鎖和共享鎖的支持必須由底層的操作系統提供。鎖的類型可以通過FileLock.isShared()進行查詢。另外,我們不能獲取緩沖器上的鎖,只能是通道上的。

    文件加鎖的實際應用之一:文件映射通常應用于大型的文件,我們可能需要對巨大的文件進行部分加鎖,以便其他的進程可以修改文件中未被加鎖的部分,數據庫就是如此,使得多用戶可以訪問到未加鎖的部分數據。其他的應用還知之甚少。

    posted on 2006-01-07 13:50 Flyingis 閱讀(3921) 評論(2)  編輯  收藏 所屬分類: JavaSE

    評論

    # re: 文件加鎖基礎  回復  更多評論   

    進程之間非常獨立,很少有可以共享的東西,只有找到可以在進程間共享的東西,才能實現進程的互斥: 文件鎖就是一個典型的應用。
    2006-01-07 23:57 | 胡子魚

    # re: 文件加鎖基礎  回復  更多評論   

    jdk這個不支持不同虛擬機之間加鎖的。進程間互斥用不了的。
    2006-01-22 13:04 | Lock
    主站蜘蛛池模板: 成人无码WWW免费视频| 美腿丝袜亚洲综合| 亚洲免费在线视频| 午夜不卡AV免费| 亚洲人成电影网站久久| 西西人体44rt高清亚洲| 久久久久亚洲av毛片大| 日本高清免费aaaaa大片视频| 日韩免费高清大片在线| 精品一区二区三区免费视频| 亚洲国产精品成人AV在线| 亚洲欧洲日韩综合| 亚洲精品视频在线| 亚洲午夜国产精品无码老牛影视| 国产一级大片免费看| 成人免费福利电影| 免费99精品国产自在现线| 久久久久免费看成人影片| 日韩免费高清播放器| 久久久久久久久久免免费精品| 国产在亚洲线视频观看| 亚洲爆乳无码专区www| 2020久久精品亚洲热综合一本| 中文字幕亚洲综合久久| 亚洲AV无码成人精品区在线观看| 亚洲中文字幕无码日韩| 亚洲综合另类小说色区| 亚洲真人无码永久在线 | 亚洲国产成人精品激情| 亚洲视频在线观看网址| 精品亚洲国产成AV人片传媒| 色播亚洲视频在线观看| 久久精品蜜芽亚洲国产AV| 亚洲AV日韩AV鸥美在线观看| 亚洲电影免费在线观看| 久久久亚洲欧洲日产国码aⅴ| 91亚洲精品视频| 亚洲人成人77777网站不卡 | aa级一级天堂片免费观看| 我想看一级毛片免费的| 麻豆成人精品国产免费|