<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
    數(shù)據(jù)加載中……

    文件加鎖基礎(chǔ)

    作者:Flyingis

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

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

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

    lock()是阻塞式的,它要阻塞進(jìn)程直到鎖可以獲得,或調(diào)用lock()的線程中斷,或調(diào)用lock()的通道關(guān)閉。

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

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

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

    評論

    # re: 文件加鎖基礎(chǔ)  回復(fù)  更多評論   

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

    # re: 文件加鎖基礎(chǔ)  回復(fù)  更多評論   

    jdk這個不支持不同虛擬機之間加鎖的。進(jìn)程間互斥用不了的。
    2006-01-22 13:04 | Lock
    主站蜘蛛池模板: 无遮免费网站在线入口| 亚洲国产成人五月综合网| 亚洲AV无码一区二区三区久久精品| 免费在线观看视频a| 大地资源中文在线观看免费版| 亚洲精品第五页中文字幕 | 免费国产在线观看老王影院| 中国一级全黄的免费观看| 亚洲国产精品日韩在线| 日韩精品电影一区亚洲| 免费观看在线禁片| 亚洲AV无码之国产精品| 亚洲AV无码不卡无码| 日本视频免费在线| 99爱在线精品视频免费观看9| 亚洲AV成人无码网站| 91大神亚洲影视在线| mm1313亚洲精品无码又大又粗| 1区2区3区产品乱码免费| 免费国产黄网站在线观看动图| 亚洲最大成人网色| 怡红院亚洲红怡院在线观看| 亚洲成a人片在线观看日本| 黄a大片av永久免费| 最近免费2019中文字幕大全| 一区二区三区在线免费 | 亚洲av成人无码网站…| 内射干少妇亚洲69XXX| mm1313亚洲精品无码又大又粗 | 久久99国产亚洲精品观看| 凹凸精品视频分类国产品免费| 最近免费中文字幕大全免费版视频| 免费精品国自产拍在线播放| 亚洲五月丁香综合视频| 宅男666在线永久免费观看| 猫咪免费人成网站在线观看| 91视频免费观看| 一本一道dvd在线观看免费视频 | 亚洲色欲色欲www在线播放| 午夜免费福利网站| 很黄很黄的网站免费的|