标签:
CopyOnWriteArrayList是一种线程安全的ArrayList,顾名思义,它会利用写时拷贝技术,它对共享对象做仅仅读操作的时候,大家都用一个共享对象,假设有可变的操作时,就会复制一份出来,然后在新的拷贝上进行操作。
所以可变操作的开销就会比較大,当然,在运行复制前,须要上独占锁,这样保证在复制的时候,不会出现不一致的情况,在复制完成后,释放锁。而在做复制的时候,其他线程还是能够在原有的老的对象上进行仅仅读操作,所以不会堵塞读操作。
当复制运行完之后,更改volatile引用,从而其他线程能够看到最新的改动结果。
原文:http://blog.csdn.net/hongchangfirst/article/details/39668723
作者:hongchangfirst
hongchangfirst的主页:http://blog.csdn.net/hongchangfirst
标签:
原文地址:http://www.cnblogs.com/bhlsheji/p/4248749.html