これは私の愚かなことかもしれませんが、ConcurrentHashMap
のソースコードを見て、そのクラスのどこにでもメソッドlock()
の定義を見ることができませんでしたが、いくつかの機会に呼び出されます。 Eclipseの場合、lock()
の公開宣言をすると、クラスReentrantLock.lock()
が表示されるので、これがどのように動作するのか混乱していますか? lock()メソッド呼び出しのためのReentrantLock
のオブジェクト参照はどこにありますか?コードフラグメントはReentrantLock
ConcurrentHashMapのlock()メソッド
2
A
答えて
8
。 its javadocを見てください。だから私はどのようにこの存在しないメソッドに任意のコードを見たことができないか分かりません。
readValueUnderLock
は、ReentrantLock
を拡張する内部クラスSegment
の方法です。だからあなたが見ているロックメソッドは、ReentrantLockのロックメソッドです。
0
のConcurrentHashMapにはロック方法はありませんを拡張Segment
呼ばConcurrentHashMap
内の内部クラス、内部にあること
V readValueUnderLock(HashEntry<K,V> e) {
lock(); // where is this method defined in CHM ?
try {
return e.value;
} finally {
unlock();
}
}
+0
絶対に、私の悪い、本当に! – Bhaskar
関連する問題
- 1. 同期メソッドConcurrentHashMapの同時実行レベル
- 2. ConcurrentHashMapメモリオーバーヘッド
- 3. ConcurrentHashMapのロック
- 4. ConcurrentHashMapコンストラクタのパラメータ?
- 5. ConcurrentHashMapのconcurrencyLevel
- 6. Java ConcurrentHashMapのパターン
- 7. C#\ Lock \ lockインスタンスメンバVSロックスタティックメンバ
- 8. フィルタConcurrentHashMap値で
- 9. Java ConcurrentHashMapアクションアトミック性
- 10. HashMap to concurrentHashMap
- 11. なぜConcurrentHashMap :: putIfAbsentがConcurrentHashMap :: computeIfAbsentより速いのですか?
- 12. ConcurrentHashMapで「マージ」メソッドを正しく使用する方法は?
- 13. マルチスレッドプログラムのLock()
- 14. ConcurrentHashMap修飾子の同期
- 15. ConcurrentHashMapでの同時修正
- 16. Java 8 ConcurrentHashMapの初期化
- 17. Linux上でCaps Lock、Scroll Lock、Num Lockキーをプログラマチックにオン/オフする方法
- 18. NO LOCKのSELECTクエリ
- 19. .lockファイルの処理
- 20. CodeIgniterのとLOCKテーブル
- 21. 非キャッシュメモリのLOCK CMPXCHG?
- 22. Emacs:font-lockの説明
- 23. C#: 'lock'命令による非同期メソッド
- 24. .Net 4.0でLock()内からUIスレッドを呼び出すメソッド
- 25. なぜConcurrentHashMapのgetメソッドにreadValueUnderLock(e)が存在するのですか?
- 26. nrjavaserialと/ var/lockへのアクセス許可(/ run/lockへのリンク)
- 27. asp.net File.Copy Lock
- 28. ManualResetEventSlimとLock
- 29. SQLSERVER-LOCKエラー
- 30. CPythonとスレッドモジュールLock()
はい、私はまったくスクロールせず、入れ子になったクラスを見ていませんでした。 – Bhaskar
+1 'static final class Segment ReentrantLock' –