又遇到了一个新的 数据结构,CopyOnWriteArrayList。是一个线程安全的队列,所有修改操作都是基于对数据的复制,针对的是遍历次数远超修改的使用情景。
0.支持null对象,而对象的比较使用equals,所以要区分对待
1.所有修改操作都有锁,但是读操作没有锁,这样就是保证了读写线程安全,但是读的数据可能不是最新的
2.提取出非加锁的方法,作为基础方法,在加锁方法中调用
3.对线程共享数据要加volatile,强迫不读缓存
又遇到了一个新的 数据结构,CopyOnWriteArrayList。是一个线程安全的队列,所有修改操作都是基于对数据的复制,针对的是遍历次数远超修改的使用情景。
0.支持null对象,而对象的比较使用equals,所以要区分对待
1.所有修改操作都有锁,但是读操作没有锁,这样就是保证了读写线程安全,但是读的数据可能不是最新的
2.提取出非加锁的方法,作为基础方法,在加锁方法中调用
3.对线程共享数据要加volatile,强迫不读缓存