序文Redisson は再入可能な読み取り/書き込みロックもサポートしており、分散シナリオで複数の読み取りロックと 1 つの書き込みロックを同時にロックできます。 1. 読み取り/書き込みロックを使用する Redisson の読み取り/書き込みロックは JUC の下で ReadWriteLock を実装しており、その使用法は基本的に同じです。 2. ソースコードロックのソース コードは基本的に以前の再入可能ロックと同じですが、唯一の違いは Lua スクリプトにあります。 したがって、以下では Lua スクリプトの分析に焦点を当てます。 ロックのソースコードを読む ソースコードアドレス: org.redisson.RedissonReadLock#tryLockInnerAsync パラメータリスト:
最初の読み取りロック
読み取りロックの再入力 再入国の場合:
読書サポート
書き込みと読み取りの相互排除 読み取りロックが追加されました。このとき、書き込みロックが入ります。最初の部分と 2 番目の部分のどちらにも該当しないため、現在のロックの残り時間をそのまま返します。 次に、Java コードで while (true) spin wait を実行します。 上記のように、ロックを読み取るときは次のようになります。
ロックソースコードを書くソースコードアドレス: org.redisson.RedissonWriteLock#tryLockInnerAsync パラメータリスト:
書き込みロックのソースコードは比較的理解しやすいです:
このように、書き込み-書き込み相互排他性と読み取り-書き込み相互排他性が直接満たされ、現在のスレッドが再入できることがわかります。 3. まとめこの時点で、読み取り/書き込みロックの読み取りは基本的に完了です。読み取りロックの実装はやや複雑ですが、書き込みロックは単純かつ明確です。 ロックを読み取るとき:
ロックを書き込む場合:
|
<<: 中国電信がクラウドコンピューティングに投資し、天一クラウドテクノロジー株式会社を設立
>>: Kubernetes 7周年記念:K8s の導入とアプリケーションの簡素化における VMware の成果と課題
アメリカの風刺コメディ『ザ・オフィス』では、架空のソフトウェア会社 Initech に雇われた 2 ...
ライブストリーミングは、結局のところトラフィックのゲームです。交通費補助金がなければ、羅永浩の2回目...
昨日、私たちSEO担当者にとって最も衝撃的なことは何でしょうか?Robin(Liu Huanbin)...
[51CTO.com 速訳] Cloud Native Computing Foundation (...
ウェブサイトを選択する際、人々は通常、ウェブサイトのトラフィック データ、広告スペースのサイズなど、...
約 2 年前、私たちは EC2 にアプリケーションをデプロイするための Ansible ベースの構成...
一般的に、電子商取引にはインターネット、小売、サプライ チェーンの 3 つのアプローチがあります。コ...
しかし、購読者がたくさんいても、記事にコメントする人が誰もいない場合は、カウントされません。そこで、...
多くのウェブマスターはスナップショットについて異なる感想を持っていると思います。百度の公式サイトはス...
Xenspec では、次の特典を提供しています: (1) シカゴとロサンゼルスでの VPS プロモー...
この記事は海外雑誌IT Reviewより翻訳されたものです。原文リンクはこちら。私はもうGoogle...
劉強東は8月15日、新浪微博の有名人影響力ランキングで1位になった。シナテクノロジー トレーシー20...
企業の売上を伸ばすために、多くの企業ウェブサイト運営者がさまざまなプロモーションチャネルを通じて企業...
Sharktech Shark Data Center では、新しい安価なサーバーを販売しています。...
翻訳者 |トゥ・チェンイエ工業情報化部が「2022年中国コンピューティングパワー大会」で明らかにした...