1.プライマー
使用中の実装内部ReentrantLockのロックインターフェイスが同期するタイプ同期のメンバ変数の使用がロックロックインタフェースを実装委託され、同期がAbstractQueuedSynchronizerから継承されたことをメインクラス、並行処理ツール、およびすべてのjava.util.concurrentパッケージAbstractQueuedSynchronizerのほとんど同期が達成されます。並行処理の原理を理解するには、まずAbstractQueuedSynchronizerの実装メカニズムをクリアする必要があります。
2.シンクロナイザ親AbstractQueuedSynchronizer
AbstractQueuedSynchronizer直接の親クラスがAbstractOwnableSynchronizerです。
AbstractOwnableSynchronizerクラス定義
パブリック 抽象 クラスAbstractOwnableSynchronizer 実装したjava.io.Serializable { プライベート 静的最終長い serialVersionUIDの= 3737899427754241961L 。 保護AbstractOwnableSynchronizer(){ } プライベート過渡スレッドexclusiveOwnerThread。 保護された最終的な空隙setExclusiveOwnerThread(スレッドスレッド){ exclusiveOwnerThread = スレッド。 } 保護された最終スレッドgetExclusiveOwnerThread(){ 戻りexclusiveOwnerThreadと、 } }
セッターねじの種類exclusiveOwnerThreadメンバ変数/ getterメソッドの一対のみこのクラスは、「Ownable」のその名の通り、排他的なスレッドを取得/設定するために使用され、このように「一つのスレッドのかもしれない独自のシンクロナイザー」です。これは、並行処理ユーティリティの排他ロックタイプの特に有用な/ゲッターセッター。リエントラントReentrantLockの排他的ロック(また、排他ロック排他ロックとも呼ばれる)、および両方の方法に共通したがって、このようなReentrantLockの。
同期状態管理を完了するためにシンクロナイザAbstractQueuedSynchronizer依存内部同期キュー(双方向FIFOキュー)