共享鎖和獨佔鎖的經典應用

  1. 共享鎖和獨佔鎖的經典應用,是控制最初用於讀取的共享文件的更新。某個進程要讀取文件, 會先取得該文件或該文件部分區域的共享鎖。第二個但願讀取相同文件區域的進程也會請求共享 鎖。兩個進程能夠並行讀取,互不影響。可是,假若有第三個進程要更新該文件,它會請求獨佔 鎖。該進程會處於阻滯狀態,直到既有鎖定(共享的、獨佔的)所有解除。一旦給予獨佔鎖,其餘 共享鎖的讀取進程會處於阻滯狀態,直到獨佔鎖解除。這樣,更新進程能夠更改文件,而其餘讀取 進程不會由於文件的更改獲得先後不一致的結果。java

  2. 文件鎖有建議使用和強制使用之分。建議型文件鎖會向􏰀出請求的進程􏰀供當前鎖定信息,但 操做系統並不要求必定這樣作,而是由相關進程進行協調並關注鎖定信息。多數 Unix 和類 Unix 操 做系統使用建議型鎖,有些也使用強制型鎖或兼而有之。操作系統

    強制型鎖由操做系統或文件系統強行實施,無論進程對鎖的存在知道與否,都會阻止其對文件
    鎖定區域的訪問。微軟的操做系統每每使用的是強制型鎖。假定全部文件鎖均爲建議型,並在訪問
    共同資源的各個應用程序間使用一致的文件鎖定,是明智之舉,也是惟一可行的跨平臺策略。依賴
    於強制文件鎖定的應用程序,從根子上講就是不可移植的。

3.設計

java.nio 中的類被特地地設計爲支持級聯調用。您可能已經在 StringBuffer 類中看進程

到了級聯調用的使用。資源

若是聰明地使用級聯調用,就能產生簡􏰥,優􏰦,易讀的
代碼。但若是􏰧用,就會使代碼不知所􏰨。當級聯調用可
以增長可讀性並使讓您的目標更加明確時使用它。若是使
用級聯調用會使代碼做用不夠清晰,那麼請不要使用它。
請時刻保證您的代碼易於他人閱讀。
相關文章
相關標籤/搜索