CopyOnWrite简称COW,是一种程序设计的一种优化的策略方法,他开始的思想就是大家一起共享一件东西或商品,当一个人想要改这个事物原有的状态时,会重新复制一份出去,然后再新的事物上面改他所需要的东西,而不会影响以前的事物,然后再将原有的事物的引用到新的事物上来,思想类似于延时懒惰策略的方法,在jdk1.5之后,java出来了CopyOnWriteList和CopyOnWriteSet两种。
CopyOnWrite也是一个容器,当大家都对这个容器做查看的时候,一个人想要添加水到容器的时候,这个容器会复制一份出来,让这个人加水,但是其他的人还可以继续对原有的容器做查看操作,等水添加完成后,原有容器会对新容器加一个引用,说明容器的水都可以查看,这样我们既可以查看原有的容器里有多少水,也可以查看加了多少水,这个是一个读写分离的思想。