查看 ConcurrentHashMap 的實作,我看到在嘗試操作它(放置/洗掉)時,找到了值,然后將此值用作執行實際操作的同步代碼的鎖。這樣,只有那個桶被鎖定在值實際存在的地方。
我還看到宣告了一個類 Segment 并且在許多在線可用資源中提到它用于實作并發。但是我在使用 Segment 進行同步實作的實作中找不到任何代碼。
那么我在這里想念什么?
我正在研究 Java 11。
uj5u.com熱心網友回復:
查看OpenJDK 8的源代碼,該類Segment帶有注釋:
/** * Stripped-down version of helper class used in previous version, * declared for the sake of serialization compatibility */ static class Segment<K,V> extends ReentrantLock implements Serializable { ... }
所以它似乎只是為了向后兼容而存在。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/400898.html
