他是线程安全的set,底层new了一个CopyOnWriteArrayList;
然后使用的是volatile修饰的Object数组;
添加的时候调用CopyOnWriteArrayList的addIfAbsent方法,会先遍历一次数组,如果存在则返回false;
如果不存在添加到数组,并且采用ReentrantLock来保证线程安全;
总结
1.CopyOnWriteArraySet使用ReentrantLock来保证线程安全
2.初始化的时候会new一个CopyOnWriteArrayList
3.插入方法也是调用的CopyOnWriteArrayList的添加方法