随笔分类 -  concurrent

源码分析
摘要:CountDownLatch、Semaphore(信号量)和ReentrantReadWriteLock.ReadLock(读锁)都采用AbstractOwnableSynchronizer共享排队的方式实现。 关于AbstractQueuedSynchronizer中的独占锁和共享锁,请参考Ree 阅读全文
posted @ 2018-01-22 15:28 Uncle_Bjorney 阅读(123) 评论(0) 推荐(0)
摘要:1. 变量和构造方法 2. 生产(put、offer) 3. 消费(take、poll) 4. 加全锁(remove) 阅读全文
posted @ 2017-12-27 11:00 Uncle_Bjorney 阅读(230) 评论(0) 推荐(0)
摘要:1. Semaphore Semaphore和ReentrantReadWriteLock.ReadLock(读锁)都采用AbstractOwnableSynchronizer共享排队的方式实现。 关于AbstractQueuedSynchronizer中的独占锁和共享锁,请参考ReentrantL 阅读全文
posted @ 2017-12-25 13:16 Uncle_Bjorney 阅读(559) 评论(0) 推荐(0)
摘要:1. 常量和变量 2. 构造方法 3. 等待节点 4. 实现Future接口 1)cancel 2)isCancelled和isDone 3)get 5. 实现Runnable接口 6. Unsafe 阅读全文
posted @ 2017-12-24 23:23 Uncle_Bjorney 阅读(170) 评论(0) 推荐(0)
摘要:1. 常量和变量 2. 父类AbstractExecutorService 不详细讲AbstractExecutorService,将会涉及到FutrueTask类,有空大家可以研究下。 3. execute 4. ThreadPoolExecutor.Worker 不详细讲AbstractSync 阅读全文
posted @ 2017-12-24 17:35 Uncle_Bjorney 阅读(243) 评论(0) 推荐(0)
摘要:1)读不加锁,写加锁。 2)Copy-On-Write:写时拷贝。 3)保证最终一致性,不保证实时一致性。 4)尽量批量添加(删除):减少Copy、减少GC。 5)适用场景:读多写少。 阅读全文
posted @ 2017-12-23 23:32 Uncle_Bjorney 阅读(120) 评论(0) 推荐(0)
摘要:1. 常量、成员变量 2. 获取元素 1' 若key所映射的bin为空,则返回空 2‘ 若当前bin首个节点为待查找节点,则返回首个节点值 3' 若当前bin首个节点哈希值 < 0,则当前bin为红黑树,或当前bin已迁移到新table中 1’‘ 若当前bin为空黑树(TreeBin),则在红黑树上 阅读全文
posted @ 2017-12-21 16:53 Uncle_Bjorney 阅读(1110) 评论(0) 推荐(0)
摘要:关于AbstractQueuedSynchronizer中的独占锁,请参考ReentrantLock(http://www.cnblogs.com/bjorney/p/8040085.html) 1. ReentrantReadWriteLock 2. ReentrantReadWriteLock. 阅读全文
posted @ 2017-12-19 10:32 Uncle_Bjorney 阅读(697) 评论(0) 推荐(0)
摘要:1. ReentrantLock 2. ReentrantLock.Sync(FairSync/NonfairSync) 3. AbstractQueuedSynchronizer.Node 4. AbstractQueuedSynchronizer 5. AbstractQueuedSynchro 阅读全文
posted @ 2017-12-16 12:28 Uncle_Bjorney 阅读(273) 评论(0) 推荐(0)