并发下ArrayList不安全的解决办法,CopyOnWriteArraryList
1.为什么ArrayList不安全,Vector就安全呢?(你就开始想了,如果并发不出错,是不是得需要synchronized修饰add这个函数)
然后你点进add看看找到相应的ArrayList。add和Vector。add看看
这个时候,你会发现Vector的add有synchronized修饰(搞定)
但这个时候你就想,那为什么ArrayList的add没有synchronized修饰,开发者傻了吗???
两个文件往上找,你会发现Vector比ArrayList早开发,别人早就想到了。。。(开发者:你能想到的我怎么没想到呢。。。)
那个CopyOnWriteArrayList比Vector NB 在哪里呢?
ctrl+左键 点过去
1.CopyOnWriteArrayList.add -> 用lock
2.Vector.add -> 用synchronized