关于ConcurrentHashMap的segments分段锁


ConcurrentHashMap分段锁segment为什么继承了的ReentrantLock,而不是ReentrantReadWriteLock或者自己实现一套ReadWriteLock,这样做高速并发缓存是不是更好些呢?不解java源码其中深意。另外实现动态管理segment分段锁,有哪些高效方案?请大侠帮帮我

java 线程安全

一辈子撸管 10 years, 9 months ago

读写锁只有在读的操作远远多于写的操作的时候才能提高性能,而ConcurrentHashMap的使用比较广泛,就像楼主问题描述中提到的高速并发缓存,如果该缓存用在了网站上,读写的比例不会相差太悬殊,如果用ReadWriteLock的话,当需要读取cache中的数据时,有写操作的话,这时读取数据的动作就被block住了,对于一个拥有大PV量的网站而言是灾难性。

miaofun answered 10 years, 9 months ago

Your Answer