粗粒度鎖
作者:David Rice 和 Matt Foemmel
使用單一鎖鎖定一組相關物件。
如需完整說明,請參閱 EAA 的 P 第 438 頁
物件通常可以作為一個群組進行編輯。也許您有一個客戶及其一組地址。如果是這樣,在使用應用程式時,如果您想鎖定其中任何一個項目,鎖定所有這些項目是有意義的。為個別物件提供個別鎖會產生許多挑戰。首先,任何操作它們的人必須撰寫程式碼才能找到它們全部,以便鎖定它們。對於客戶及其地址來說,這很容易,但隨著鎖定群組的增加,這會變得棘手。如果群組變得複雜怎麼辦?當您的架構管理鎖定取得時,此行為在哪裡?如果您的鎖定策略要求載入物件才能鎖定,例如使用樂觀離線鎖定 (416),則鎖定大型群組會影響效能。而對於悲觀離線鎖定 (426),大型鎖定集是一個管理頭痛,並會增加鎖定表格競爭。
粗粒度鎖是一個涵蓋許多物件的單一鎖。它不僅簡化鎖定動作本身,還讓您不必載入群組的所有成員即可鎖定它們。