JAVA関連のロック

JAVAの内のロックの概念
スピンロック:
ロックが別のスレッドによって獲得された場合は、1つのスレッドは、ロック時間を取得したときに、スレッドがサイクルを待ち、その後、ロックが正常に到達するまで、取得できるかどうかを判断していきますされますロックは、ループを終了します。
楽観的ロック:
データが変更されたときに最新データを読み、その後、競合が存在しないと仮定し、そして場合一貫性のないデータを見つけ、以前に取得した、修飾された再試行が変更されました。
ペシミスティック・ロック:
、同時競合が起こるのだろうと仮定しロックされ、データが先頭から読み取られたデータに関連するすべての操作を同期させます。
排他ロック(書き込み):
書き込みロックにリソースを追加するには、スレッドがリソースを変更することができ、他のスレッドができないロック(追記)
拠出ロック(読み込み):
読み込みロックすることができないだけで、変更後のリソースを追加するには、だけでなく、他のスレッドプラスロックは、読むことができ、書き込みロックをすることはできません(続きを読む)
リエントラントロック、非リエントラントロック:
スレッドが自由に同期した同じロックで他のコードを入力することができますロックを得た後。
フェアロックは、不公平ロック:
ロックのための競争のために、最初の公正のために、役立っ最初に来るとする方法。

キーワードが同期を同期:
例えば1. A法、静的側4.方法は、暗黙的にロックオブジェクト指定された
指定されたロックオブジェクト表示、コードブロックに対して2を
分散、オブジェクトのロック、ロックタイプ:3をロックスコープロックが
特長:リエントラント、排他的、悲観的ロック
ロックの最適化:ロックの除去(オープンロック解除パラメータ:-XX:+ DoEscapeAnalysis -XX:+ EliminateLocks)
ロックを粗大化:JDKは、最適化の粗大ロックを行うが、私たちはすることができますコード・レベルの最適化で

偏ったロック:
ここに画像を挿入説明
ロックはアップグレードします。
ここに画像を挿入説明

公開された16元の記事 ウォンの賞賛1 ビュー465

おすすめ

転載: blog.csdn.net/qq_32550623/article/details/104078552