add方法为了效率没有加synchronize 锁
并发下 常遇到 concurrentModificationException 异常
解决方案
1.list的另一个实现类 vector 集合add方法有加锁 synchronize 性能差 但线程安全
2.list接口的父接口 collection,collections 是个工具类 可以包装出加锁的各种集合比如collections.synchronizedList(new arrayList)
3.copyonwriteList 线程安全,它的add方法底层实现
1.get lock 获得锁 并锁住当前的写操作
Object [] ele= getArray()
Int len= ele.lenth
Object [] newele= Arrays.copyof(ele,lrn+1)
setArray(newele)
return true
lock.unlocktrue
hashset 底层是 hashMap。
它的add方法 key是传入的 value是恒定的 object对象 add(var1)所以add方法只有一个参数
网友评论