线程不安全问题

集合类不安全 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()
posted on 2021-01-20 08:58  LeavesCai7  阅读(66)  评论(0编辑  收藏  举报