jer*_*mie 5 java concurrency multithreading hashmap
我知道 Java 中的 ConcurrentHashMap 及其众多优点,但我不太清楚为什么像同步 HashMap 这样的实现需要在每个函数调用上同步。
对我来说,感觉就像如果你有一个 HashMap ,其唯一的功能是put(k, v)和get(k),那么只有该put函数需要同步,因为即使你在调用后调整 hashMap 的大小put,那么你仍然可以在执行时授予安全的读取访问权限调整大小。读取器线程可以简单地读取调整大小之前的版本。当调整大小完成后,编写器线程将替换引用,以便所有当前调用都get将指向 HashMap 的调整大小版本。
我错过了一些明显的东西吗?