<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
    主站蜘蛛池模板: 精品视频一区二区三区免费| 一区二区三区免费电影| 亚洲精品免费观看| 亚洲爆乳精品无码一区二区三区 | 亚洲老熟女五十路老熟女bbw | 我要看WWW免费看插插视频| 亚洲国产午夜电影在线入口| 在线观看免费视频资源| 91久久亚洲国产成人精品性色 | 亚洲第一成年免费网站| 国产成人免费片在线观看| 免费看黄福利app导航看一下黄色录像| 国产成人高清精品免费鸭子| 免费在线观看一区| 亚洲精品自在在线观看| 中文字幕在线免费观看| 亚洲天堂2016| 国产yw855.c免费视频| 三级黄色片免费看| 亚洲高清美女一区二区三区| 成人无码区免费视频观看| 国产精品久久久久久亚洲小说| 久久国产成人精品国产成人亚洲| 本免费AV无码专区一区| 亚洲人成影院在线高清| 免费一区二区视频| 性xxxxx大片免费视频| 精品国产日韩久久亚洲| 亚洲国产精品嫩草影院久久 | 国产自产拍精品视频免费看| 人成免费在线视频| 精品无码一区二区三区亚洲桃色 | 亚洲一区中文字幕在线电影网| 国内大片在线免费看| 一区二区视频免费观看| 久久久久亚洲AV无码网站| 在线免费观看国产视频| 无码精品一区二区三区免费视频| 美女视频黄免费亚洲| 亚洲熟女一区二区三区| 免费无码又爽又刺激聊天APP|