线程安全问题

线程不安全问题

集合类不安全 ArrayList

1.故障现象
java.util.ConcurrentModificationException

2.导致原因
并发争抢修改导致

3.解决方案
   3.1 new Vector<>()
   3.2 Collections.synchronizedList(new ArrayList<>());
   3.3 new CopyOnWriteArrayList<>();

   CopyOnWriteArraySet 也可以。但底层 实质 就是 CopyOnWriteArrayList

集合类不安全 HashSet

HashSet() 底层实质就是 HashMap<>()
但是HashSet在Set值时只需要添加一个值?Map不应该是键值对,两个值嘛?
原因:::底层源码中,实际的Value是一个Object类型的PRESENT的常量。

CopyOnWriteHashSet
Collections.synchronizedSet()

集合类不安全 Map

ConcurrentHashMap
collections.synchronizedMap()
上一篇:2020.11.23java集合Map接口、Collections类


下一篇:java 中几种常用数据结构