3.11.2 ロックによる排他制御

あるユーザ(ユーザA)が,ある文書空間オブジェクト(文書X)に対してロックを設定している状態を,「ユーザAが文書Xのロックを取得している」と表現します。Java クラスライブラリでは,同じ文書空間オブジェクトに対して,あるユーザ(ユーザA)がすでに取得しているロックと,ほかのユーザ(ユーザB)が取得するロックが競合した場合,ユーザBは,ユーザAが取得しているロック種別によって,次の表で示すように排他制御されます。

表3-21 ロックが競合した場合のロックの関係

ユーザAが取得したロックreadwrite
ユーザBが取得できるロックread×
write××

(凡例)

○:ロックを設定するメソッドを実行できます。

×:ロックを設定できないため,実行するメソッドは,ロックが解除されるまで待ち状態(WAITモード)になります。