并发容器CopyOnWrite

CopyOnWrite,写时复制技术是并发容器的一种解决方案,即是说当有线程需要修改容器的内容时,会复制一份容器的副本进行修改。Java中实现了两个CopyOnWrite容器,CopyOnWriteArrayList和CopyOnWriteSet。

CopyOnWrite容器可以实现并发地读,并且写也不会影响当前的并发读,但是写操作不能同时有多个线程,需要加锁。写完之后将新的容器赋值给旧的引用。

该容器有两个方面的问题:
1. 内存占用问题,因为写时需要复制一份原容器的副本,这在容器容量非常大的时候可能有内存方面的问题。
2. 数据的一致性问题,因为写的数据并不是实时反映过来的。

你可能感兴趣的:(java,并发,线程)