jdk源码
wzr208
这个作者很懒,什么都没留下…
展开
-
ConcurrentHashMap源码浅析
可能有人有疑问,ConcurrentHashMap跟HashMap简单的synchronized有什么区别呢? 简单的说,ConcurrentHashMap与HashMap最大的不同在于分段加锁,两次Hash命中,第一次hash找到对应的segment,然后在segment内部进行加锁,最后再次hash才找到所在 下面看代码分析public V put(K key, V value) {原创 2015-11-05 15:55:52 · 219 阅读 · 0 评论 -
LinkedBlockingQueue中有趣的细节
之前写了个小爬虫的时候,自己实现过一个队列,本来希望能实现读写锁分离,试了几个思路都无法实现就将这个想法搁置了。最近又重读了一遍LinkedBlockingQueue的代码,发现它就是读写锁分离的嘛。 /** Lock held by take, poll, etc */ private final ReentrantLock takeLock = new ReentrantLock();原创 2015-09-22 20:27:01 · 261 阅读 · 0 评论