Java中的CopyOnWrite

Posted 子阙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的CopyOnWrite相关的知识,希望对你有一定的参考价值。

CopyOnWrite简称COW,是一种程序设计的一种优化的策略方法,他开始的思想就是大家一起共享一件东西或商品,当一个人想要改这个事物原有的状态时,会重新复制一份出去,然后再新的事物上面改他所需要的东西,而不会影响以前的事物,然后再将原有的事物的引用到新的事物上来,思想类似于延时懒惰策略的方法,在jdk1.5之后,java出来了CopyOnWriteList和CopyOnWriteSet两种。

CopyOnWrite也是一个容器,当大家都对这个容器做查看的时候,一个人想要添加水到容器的时候,这个容器会复制一份出来,让这个人加水,但是其他的人还可以继续对原有的容器做查看操作,等水添加完成后,原有容器会对新容器加一个引用,说明容器的水都可以查看,这样我们既可以查看原有的容器里有多少水,也可以查看加了多少水,这个是一个读写分离的思想。

 

以上是关于Java中的CopyOnWrite的主要内容,如果未能解决你的问题,请参考以下文章

JAVA面试干货-CopyOnWrite

详解CopyOnWrite容器及其源码

JAVA并发容器之CopyOnWrite容器

22_CopyOnWrite容器

Java集合--线程安全(CopyOnWrite机制)

有了CopyOnWrite为何又要有ReadWriteLock?