集合不安全之 ---> Map
不废话,直接上代码
//演示HashMap类的并发问题 @Test public void demo1() { Map<String, Integer> map = new HashMap<>(); Random random = new Random(); for (int i = 0; i < 10; i++) { new Thread(() -> { map.put(Thread.currentThread().getName(), random.nextInt()); System.out.println(map); }).start(); } //报错:Exception in thread "Thread-0" Exception in thread "Thread-1" java.util.ConcurrentModificationException }
解决方法:
使用ConcurrentHashMap类
使用Collections.synchronizedMap()方法
ConcurrentHashMap使用的分段锁
有志者、事竟成,破釜沉舟,百二秦关终属楚;
苦心人、天不负,卧薪尝胆,三千越甲可吞吴.
加油吧,致每个正在奋斗路上的你!!!