ReentrantLockの再入可能ロック

A、ロックインタフェース:

  5 Java SEの後に、ロック機能を実装するために収縮ロックインターフェースと関連する実装クラスを追加しました。

 ロックロックはインターフェースとsynchronizedキーワードの違いを実感します。

取得とロックを解除、取得しロックを解除暗黙sychronized(1)表示されるインターフェイスをロック。正確には、このため、そのインタフェースはロックロックの取得と操作性の解放を持っていることを、割り込みロック取得タイムアウト取得同期は利用できませんsynchronizedキーワードロックの多様性を備えています。

例えば:ロックC.取得中Bは、Aのリリースながら、得られた場合に、ロックA、Bを取得した後、ロックを取得するシーン、などなど。このシナリオは悪いが実現同期。

ロックを取得する(2)非ブロッキング試行:他のスレッド場合、現在のスレッドがロックを取得するために、この時間が正常に取得され、ロックを保持しているロックを取得しようとします。

(3)は、中断取得することができます:スレッドをロックするには、Get割り込みに応答することができる取得したロックのスレッドが中断されたときにロックが解除されている間、割り込み例外は、スローされます。

(4)は、ロック・タイムアウトを取得する:期限がまだ返されるロックを取得できない場合に、指定された期限前にロックを取得します。

ロックロック= 新しいReentrantLockの(); 
lock.lock; 
試す{ 
} 最後に{ 
    lock.unlockを();  
}

2、ロック共通インターフェイスAPI

二、ReentrantLockのリエントラントロック

1、ReentrantLockの:つまり、ロックの再入力をサポートしています。ロックされたリソースのスレッドの重複をサポートする能力を。ロック、デフォルト以外のフェアロックを取得する場合に加えて、ロックはまた、株式および選択の非資本をサポートしています。

  ReentrantLockのロック()メソッドを呼び出すときに、スレッドがブロックされることなく、ロックを取得するために()メソッドを再度ロックを呼び出すことができますロックする取得されています。

 

彼は加えました:

公正ロック:公正がロックを取得するためのものであり、ロックが公正であれば、その後、ロック獲得の順序は絶対年代順の要求に沿ったものである必要があり、それはFIFOです。

  不当なロックはスレッド「飢餓」ことがあり、かつ公正なロックは、スレッドスイッチの多くを必要と

 

2.実装のメカニズム:

おすすめ

転載: www.cnblogs.com/guoyu1/p/12179423.html