copyonwritearraylist,在写入时,不复制,直接加锁会咋样有啥问题么
那就白使用了CopyOnWriteArrayList了,直接使用ArrayList即可。COW的思想就是写时复制,读的时候并发。
■网友
copyonwritearraylist的实现里有一个重要的概念,就是"snapshot", 保证了读写是不冲突的,对于遍历这种重度操作, 可以极大提高吞吐, 当然代价就是要copy array(大多数据库里实现isolation属性时会用到snapshot)
如果按照你加锁的思路, copyonwritearraylist设计之初考虑的使用场景就不适合了。
■网友
这样不就降级成了sync修饰的arraylist?
■网友
【copyonwritearraylist,在写入时,不复制,直接加锁会咋样有啥问题么】 我的理解是,如果只加锁不复制,那么在写线程未释放锁时(未提交),读线程就可以读到最新的数据了,类似于数据库中的脏读。
推荐阅读
- 中国版Evan能火吗美国9岁男童录制评测玩具视频年入800万,中国能否复制成功
- 怎样防止U盘内的文件被复制
- 耳机能够复制小米模式吗
- 刘思瑶|刘思瑶也被抄袭? 整体妆容造型,都被另一个千万粉网红复制
- 软件在安装的过程中一般会干些啥事
- 高中毕业三年了,想学编程有出路吗
- 为啥移动无法复制腾讯的成功
- 知乎是咋一步步走向成功的,能不能复制知乎模式
- 为啥我的复制比剪切快
- 雷暴大风■雷暴大风!最高8℃!天气“大翻脸”,接下来还有……