インタビューチェーンガンシリーズ(3):どのように同期して

  1. 使用方法を同期?
    使用済み、同期同時実行制御は、一般的に単にアクセスロックすることを意味し、キーワードを使用しています。一般的な方法は、改変され得るか、またはコードブロックは、オブジェクトのロックと呼ばれ、それは、クラスロックと呼ばれ、クラスまたはオブジェクトクラスの静的メソッドを修正することができます。

  2. その上に再入可能ロックは、同期のですか?
    ときに、スレッドがオブジェクトのロックリソースの別のスレッドによって保持された1を操作しようとする設計からミューテックスは、ブロックされた状態になりますが、スレッドがリソースを要求したとき、彼らは再び、このオブジェクトのロックを保持しますリエントラントロックケースに属する、要求は成功します。Javaが同期され、原子内部のロック機構に基づいて再入可能です。

  3. 同期の原理は、それを知りますか?
    monitorenter同期命令を使用して同期monitorexitは、これら2つの命令が取得されるモニタ(モニタ)に本質的に対象となっています。このプロセスは、同期オブジェクトのモニターによって保護され得るために、一度に一つのスレッド、排他的です。スレッドの実行が指示をmonitorenterする場合は、所有権を監視するために、対応するオブジェクトを取得しようとすると、そのオブジェクトのロックを取得しようとし、monitorexitの実装では、モニターの所有権のリリースです。

  4. 同期ロックのアップグレードについて教えてください?
    JDK1.6ロックが最適化されて同期した後、ローからハイへのロックのエスカレーションレベル:ロックなし- >偏ったロック- >軽量ロック- >ヘビー級のロック。しかし、ロックのアップグレードが唯一のローからハイへのアップグレードを、単方向である、それは低下しません。最初のオブジェクト、インスタンス変数とパディングデータ:JVMは、メモリ内のオブジェクトの三つの領域のレイアウトに分割されています。マーク・ワード(マーカーフィールド)、クラースポインタ(ポインタ型):メインオブジェクトヘッダデータは、2つの部分からなります。実行時データ・ストレージ・オブジェクト自体のマーク・ワードは、ロックするキーと軽量バイアスされたロックです。
    1. スレッドがロックを取得した場合、ロックは、スレッドが再びこうしてロックに関連する多数のアプリケーションを排除し、ロック、およびnoさらに同期を要求するとき、マーク・ワード構造は、バイアスロック構造となるモード、に付勢されています動作し、プログラムのパフォーマンスを向上させます。
    2. ロック場面での激しい競争、各アプリケーションスレッドのロックと同じではありませんで、偏ったロックは無効になりロックが失敗した後に、軽量ロックにアップグレードバイアスされています。軽量ロックは、伝統的な条件を達成するために、オペレーティング・システムのミューテックスロックの使用に関連している、存在する場合、ヘビー級に拡大し、交互に同時にロックで同じような状況に同期ブロックへのアクセスを行うシーンに適応するためのスレッドですロック。
    3. 軽量ロックに失敗した後、だけでなく、適応スピン。ほとんどの場合、スレッドが長すぎない時間のロックを保持しているスレッドの切り替えは、カーネルモードために、ユーザーモードから変換する必要があるときに、オペレーティングシステムレベルで直接ハングした場合、この状態の変換は比較的長い時間を要します。スピンロックはすぐに現在のスレッドでロック、50サイクルまたは100サイクルの空気の循環を行うには、現在のスレッドの仮想機会を獲得すると仮定することができます。ロックが取得されている場合、いくつかのサイクルの後、成功したクリティカル領域を入力してください。あなたが得ることができない場合はロック・スレッドはロックされたアップグレードヘビー級のために中断されます。JVMが自動的にスピンの数、成功した。この時間を調整します、注意してください、次のスピンの数は、よりになり、それが失敗した場合、次のスピンの数が削減されます。

参考記事:

https://blog.csdn.net/u011212394/article/details/82228321
https://www.cnblogs.com/fuly550871915/p/4890753.html
https://www.cnblogs.com/paddix/p/5405678。 HTML

チキンスープは:あまりにも遠くに行くと、私たちが出て設定する理由を忘れないでください。 - ハリール・ジブラーン

おすすめ

転載: www.cnblogs.com/xiaoyangjia/p/11457994.html