これは私の愚かなことかもしれませんが、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. Java ConcurrentHashMapのパターン
- 5. C#\ Lock \ lockインスタンスメンバVSロックスタティックメンバ
- 6. フィルタConcurrentHashMap値で
- 7. ConcurrentHashMap修飾子の同期
- 8. .lockファイルの処理
- 9. Emacs:font-lockの説明
- 10. CodeIgniterのとLOCKテーブル
- 11. Android 2.1 SDK + ConcurrentHashMap $ ValueIteratorとGC
- 12. CPythonとスレッドモジュールLock()
- 13. Fair Reentrant Lock C++
- 14. asp.net File.Copy Lock
- 15. ManualResetEventSlimとLock
- 16. Android App Lock
- 17. Emacsでcaps lock、num lock、shiftキーの状態を表示
- 18. ConcurrentHashMapのビットワイズシフト演算子の使用
- 19. LockはLockよりも適切なデフォルトですか?
- 20. SVNプロパティの更新 "svn:needs-lock"
- 21. Java ConcurrentHashMapアトミック・ゲット(存在する場合)
- 22. Ruby Fiddle and Global Interpreter Lock(GIL)
- 23. Rack :: Lock#call too much time
- 24. OracleとTSQLステートメントNO LOCK
- 25. Caps Lockにバインドする
- 26. LOCK権限のないpostgresデータベースのコピー
- 27. Javaの `Lock`が現在のスレッド
- 28. Intel命令のLOCKプレフィックス。ポイントは?
- 29. try-lock mutexコールとCASコールの比較
- 30. HaskellのConcurrentHashMapの類推は何ですか?
はい、私はまったくスクロールせず、入れ子になったクラスを見ていませんでした。 – Bhaskar
+1 'static final class Segment ReentrantLock' –