Java并发容器
jcsyl_mshot
点滴生活,水落石出。
展开
-
Java 阻塞队列
阻塞队列(BlockingQueue) 是一个支持两个附加操作的队列。 这两个附加的操作是: 在队列为空时, 获取元素的线程会等待队列变为非空。 当队列满时, 存储元素的线程会等待队列可用。 阻塞队列常用于生产者和消费者的场景, 生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。 阻塞队列就是生产者存放元素的容器, 而消费者也只从容器里拿元素。ArrayBlockingQueue...原创 2018-04-02 13:13:06 · 132 阅读 · 0 评论 -
ConcurrentHashMap
由于HashMap 在执行并发put操作时候会引起死循环(多次添加,会覆盖掉原来的vaue值不影响),使用HashTable,在put ()和get() 上都存在线程阻塞,因此效率低下。ConcurrentHashMap的锁分段技术能够有效提升并发访问量。 在 ConcurrentHashMap 中,不允许用 null 作为键和值。 ConcurrentHashMap 使用分段锁技术,将数据分成...原创 2018-03-31 22:12:07 · 164 阅读 · 0 评论 -
HashMap
HashMap低层实现原理HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的(哈希冲突的解决方案有多种:开放定址法(发生冲突,继续寻找下一块未被占用的存储地址),再散列函数法,链地址法,而HashMap即是采用了链地址法),如果定位到的数组位置不含链表(当前entry的next指向null),那么对于查找,添加等操作很快,仅需一次寻址即可;如果定...原创 2018-03-31 21:03:28 · 914 阅读 · 3 评论 -
HashSet/TreeSet
HashSet内部有一个HashMap,只使用了map的key,value都是同一个object private static final Object PRESENT = new Object(); TreeSet内部是一个TreeMap,只使用了key,value也是上面这个object。LinkedHashMapLinkedHashMap是HashMap的子类,与HashMap有...原创 2018-04-25 16:30:41 · 198 阅读 · 0 评论 -
Hashtable
Hashtable底层实现原理与HashMap十分类似,在put、get、remove等方法上加了同步 public synchronized V put(K key, V value) {} 方法的synchronized使用this锁,把整个对象都锁了,粒度大Hashtable 的 key 和 value 都不允许为 null,Hashtable遇到 null,直接返回 NullP...原创 2018-04-25 16:33:20 · 125 阅读 · 0 评论 -
WeakHashMap VS HashMap
WeakHashMap VS HashMapWeakHashMap 中的 key 采用的是“弱引用”的方式,只要 WeakHashMap 中的 key 不再被外部引用,所对应的键值对就可以被垃圾回收器回收。 HashMap 中的 key 采用的是“强引用”的方式,当 key 不再被外部引用 时,只有当这个 key 从 HashMap 中删除后,才可以被垃圾回收器回收。HashMap和Tre...原创 2018-05-04 21:17:47 · 134 阅读 · 0 评论 -
HashMap 和 HashTable 的区别
HashMap 和 HashTable 的区别1.Hashtable 是线程安全的, 方法是 Synchronized 的, 适合在多线程环境中使用, 效率稍低; HashMap 不是线程安全的, 方法不是 Synchronized 的, 效率稍高, 适合在单线程环境 下 使 用 , 所 以 在 多 线 程 场 合 下 使 用 的 话 , 需 要 手 动 同 步 HashMap 。(在线程竞争...原创 2018-05-04 16:46:02 · 370 阅读 · 0 评论 -
ArrayList、 LinkedList、 Vector
ArrayList、 LinkedList、 Vector 的区别和实现原理。ArrayList 和 Vector 只能按顺序存储元素(从下标为 0 的位置开始) , 删除元素的时候, 需要移位并置空, 默认初始容量都是 10。 ArrayList 和 Vector 基于数组实现的, LinkedList 基于双向循环链表实现的(含有头结点) 。一.线程安全性ArrayList 不具...原创 2018-05-04 16:14:59 · 106 阅读 · 0 评论