集合
文章平均质量分 80
李一
简单点
展开
-
结合“锁”性能学习并发集合
“锁”的竞争必然会导致程序性能急剧下降,常见的提高“锁”性能有以下一些建议。我们根据“锁”的优化来顺便学习一下并发集合(java.util.concurrent包下的部分集合类) 1.减少锁粒度 所谓减少锁粒度,就是指缩小锁定对象的范围,从而减少锁冲突的可能性,进而提高系统的并发能力。 我们来了解一下ConcurrentHashMap 类怎么实现减小锁粒度的: 通过分析Ha原创 2018-01-16 15:10:08 · 358 阅读 · 0 评论 -
CAS(Compare and Swap)无锁算法 与 ConcurrentLinkedQueue 队列
了解CAS 我们就先了解一下乐观锁与悲观锁:独占锁是一种悲观锁,synchronized就是一种独占锁,它假设最坏的情况,并且只有在确保其它线程不会造成干扰的情况下执行,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。而另一个更加有效的锁就是乐观锁。所谓乐观锁就是,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。CAS就是乐观锁运用到的策略。原创 2018-01-19 13:36:19 · 272 阅读 · 0 评论