一、并发容器 1.ConcurrentHashMap 为什么要使用ConcurrentHashMap 在多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,HashMap在并发执行put操作时会引起死循环,是因为多线程会导致HashMap的Entry链表 形成环 ...
分类:
编程语言 时间:
2018-02-10 18:18:47
阅读次数:
197
初始化: 问题:如何当且仅只有一个线程初始化table 1、第3行 判断当前系统的table是否为空,这里用volatile 修饰table,对于各个线程都是可见的 2、第4行 判断sizeCtl 是否小于零,因为在初始化的过程中,会把sizeCtl设置成-1,所以如果小于零,说明当前有其他线程正在 ...
分类:
其他好文 时间:
2018-02-07 14:42:08
阅读次数:
150
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable。从ConcurrentHashMap代
分类:
其他好文 时间:
2018-02-03 16:18:25
阅读次数:
154
多线程编程一直是老生常谈的问题,在Java中,随着JDK的逐渐发展,JDK提供给我们的并发模型也越来越多,本文摘取三例使用不同原理的模型,分析其大致原理。目录如下: 1.COW之CopyOnWriteArrayList 2.CAS之ConcurrentHashMap 3.读写分离之LinkedBlo ...
分类:
编程语言 时间:
2018-02-02 00:38:45
阅读次数:
225
本文介绍Redis的字典(是种Map)扩容与ConcurrentHashMap的扩容策略,并比较它们的优缺点。 (不讨论它们的实现细节) 首先Redis的字典采用的是一种‘’单线程渐进式rehash‘’,这里的单线程是指只有一个线程在扩容, 而在扩容的同时其他的线程可以并发的进行读写。 Redis系 ...
分类:
其他好文 时间:
2018-01-26 00:37:00
阅读次数:
279
总结:A,CopyOnWriteArrayList适用于写少读多的并发场景B,ReadWriteLock即为读写锁,他要求写与写之间互斥,读与写之间互斥, 读与读之间可以并发执行。在读多写少的情况下可以提高效率C,ConcurrentHashMap是同步的HashMap,读写都加锁D,volatile只保证多线程操作的可见性,不保证操作的原子性总结:a是类中的成员变量,存放
分类:
其他好文 时间:
2018-01-16 11:12:50
阅读次数:
181
0. 前言 HashMap和HashTable的区别一种比较简单的回答是: (1)HashMap是非线程安全的,HashTable是线程安全的。 (2)HashMap的键和值都允许有null存在,而HashTable则都不行。 (3)因为线程安全、哈希效率的问题,HashMap效率比HashTabl ...
分类:
编程语言 时间:
2018-01-16 00:55:19
阅读次数:
172
大家都知道Java源码在编译之后会擦除泛型信息,现在来看一个泛型未被擦除的情况,见ConcurrentHashMap.comparableClassFor方法。 ParameterizedType.getActualTypeArguments能获取类所实现的接口中未被擦除的泛型信息。实验如下: 输出 ...
分类:
编程语言 时间:
2018-01-15 20:21:46
阅读次数:
232
转载两篇不错的文章: 第一篇: 前言 HashMap是我们平时开发过程中用的比较多的集合,但它是非线程安全的,在涉及到多线程并发的情况,进行put操作有可能会引起死循环,导致CPU利用率接近100%。 [java] view plain copy final HashMap<String, Stri ...
分类:
其他好文 时间:
2018-01-14 16:48:50
阅读次数:
256
一、HashTable 首先看一下官网的推荐 解释一下上面的话,主要是说hashtable是线程安全,如果是你是在线程非安全的情况下使用的话,推荐使用hashMap,如果在线程安全的情况下使用的话,推荐使用ConcurrentHashMap来替代HashTable。言外之意也就是说hashTable ...
分类:
其他好文 时间:
2018-01-13 12:50:13
阅读次数:
134