10 2017 档案
摘要:【BlockingQueue常见】 [ ArrayBlockingQueue ] 基于数组的阻塞队列的实现,在ArrayBlockingQueue内部,维护了一个定长数组,以便缓存队列中的数据对象,其内部没实现读写分离,也就意味着生产者和消费者不能完全并行,长度需要自定义,可以指定先进先出或者先进后
阅读全文
摘要:【简述】 ConcurrentLinkedQueue是一个适用于高并发场景下的队列,通过无锁的方式,实现了高并发状态下的高性能,通常ConcurrentLinkedQueu性能好于BlockingQueue。它是一个基于链接节点的无界线程安全队列。该队列的元素遵循先进先出的原则。头是最先加入的,尾是
阅读全文
摘要:【简述】 Copy-On-Write简称COW,是一种程序设计中的优化策略。 JDK里的COW容器分为两种:CopyOnWriteArrayList 和 CopyOnWriteArraySet。 CopyOnWrite容器即:写时复制的容器。通俗理解就是当我们往一个容器添加元素的时候,不直接网当前容
阅读全文
摘要:【简述】 ConcurrentHashMap内部使用段(Segment)来表示这些不用的部分,每个段其实就是一个小的HashTable,他们有自己的锁,只要多个修改操作发生在不同的段上,他们就可以并发执行。把一个整体的分成了16个段(Segment),也就是最高支持16个线程并发的修改操作。这也是在
阅读全文
摘要:【简述】 JDK1.5以后提供了多种并发类容器代替同步类容器来改善性能,同步类容器的状态都是串行化的,它们虽然实现了线程安全,但是极大地降低了并发性,在多线程环境,严重降低了应用程序的吞吐量。 并发类容器是专门针对并发设计的,如下: 1.使用ConcurrentHashMap来代替基于散列的传统Ha
阅读全文
摘要:【概述】 线程局部变量,是一种多线程间并发访问变量的解决方案。与synchronized等加锁的方式不同,ThreadLocal完全不提供锁,而使用以空间换时间的手段,为每个线程提供变量的独立副本,以保障线程安全。 从性能上讲,ThreadLocal不具有绝对的优势,在并发不是很高的时候,加锁的性能
阅读全文

浙公网安备 33010602011771号