[解決済み] ReentrantReadWriteLock:ReadLockとWriteLockの違いは何ですか?
2022-02-15 18:06:07
質問
知っていることは
解決方法は?
readLock.lock()を実行します。
- これは、もし他のスレッドが 書き込み (を保持している 書き込みロック)、他のスレッドが書き込みをしなくなるまでここで停止します。
- ロックが許可されると、他のスレッドからは 書き込み (ロックが解除されるまで(つまり書き込みロックを取る)。
writeLock.lock()です。
- これは、もし他のスレッドが 読書 または ライティング の場合、停止 で、他のスレッドが読み書きをしなくなるまで待ちます。
- ロックが付与されると、他のスレッドからは 読む または 書く (すなわち、読み取りまたは書き込みのロックを取る) ロックが解放されるまで。
これらを組み合わせることで、一度に1つのスレッドだけが書き込み権限を持ち、スレッドが書き込みを行っているとき以外は、好きなだけ多くの読者が同時に読み込めるようにすることができます。
別の言い方をすれば あなたが毎回 読む を構造体から取得します。 読む ロックすることができます。をするたびに 書く を取る。 書く をロックします。この方法では、書き込みが行われるたびに誰も読んでいません(排他的なアクセス権を持っていると想像できます)が、誰も書き込んでいない限り、多くの読者が同時に読むことができます。
関連
-
[解決済み】このコンパイルユニットは名前付きモジュールに関連しているため、名前付きパッケージeclipseを宣言する必要があります。
-
[解決済み】Javaの".class expected "について
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] プロセスとスレッドの違いは何ですか?
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み] ConcurrentHashMapとCollections.synchronizedMap(Map)の違いは何ですか?
-
[解決済み】JSF、Servlet、JSPの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー:'if'のない'else'エラー
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み] 解決済み】Javaが「型をインスタンス化できない」というエラーを返す [重複] [重複]
-
[解決済み】非閉鎖文字リテラルエラー
-
[解決済み】Eclipseで「公開型 <<classname>> は独自のファイルで定義する必要があります」エラー【重複あり
-
[解決済み】文字列中の � を置換する方法
-
[解決済み] JavaでSSLピアが正しくシャットダウンされない
-
[解決済み] エラー - trustAnchors パラメータは空であってはなりません。
-
[解決済み】Eclipseで「パッケージエクスプローラー」ビューが見つからない
-
[解決済み】接続Java - MySQL : 公開鍵の取得は許可されていません。