织梦网站安装播放视频插件下载,线下推广活动,论文一区二区三区是什么意思,如何建立营销型网站系列文章目录
设计模式之避免共享的设计模式Immutability#xff08;不变性#xff09;模式 设计模式之并发特定场景下的设计模式 Two-phase Termination#xff08;两阶段终止#xff09;模式 文章目录 系列文章目录一、Copy-on-Write是什么#xff1f;二、应用 一、Cop…系列文章目录
设计模式之避免共享的设计模式Immutability不变性模式 设计模式之并发特定场景下的设计模式 Two-phase Termination两阶段终止模式 文章目录 系列文章目录一、Copy-on-Write是什么二、应用 一、Copy-on-Write是什么
Java 里 String 在实现 replace() 方法的时候并没有更改原字符串里面 value[] 数组的内容而是创建了一个新字符串这种方法在解决不可变对象的修改问题时经常到。它本质上是一种 Copy-on-Write方法。所谓 Copy-on-Write经常被缩写为 COW 或者 CoW顾名思义就是写时复制。不可变对象的写操作往往都是使用 Copy-on-Write 方法解决的当然 Copy-on-Write 的应用领域并不局限于 Immutability 模式。Copy-on-Write 才是最简单的并发解决方案很多人都在无意中把它忽视了。它是如此简单以至于 Java 中的基本数据类型String、Integer、Long 等都是基于 Copy-on-Write 方案实现的。Copy-on-Write 缺点就是消耗内存每次修改都需要复制一个新的对象出来好在随着自动垃圾回收GC算法的成熟以及硬件的发展这种内存消耗已经渐渐可以接受了。所以在实际工作中如果写操作非常少读多写少的场景可以尝试使用 Copy-on-Write。
二、应用 配置信息在配置信息读取频繁而修改操作较少时可以使用COW来管理配置信息。当需要修改配置时创建配置的副本进行修改然后替换原始配置确保读取配置信息的线程不会受到修改操作的干扰。 缓存在缓存对象上应用COW可以确保读操作始终访问到数据的一致性版本而不受到写操作的影响。修改操作会在副本上进行然后替换原始缓存对象。 数据快照当需要对数据进行快照备份时可以使用COW技术。在数据变化时先复制原始数据然后对副本进行写操作以确保数据备份的一致性。 不变性对象在并发编程中不变性对象是一种常见的编程模式。不变性对象在创建后就不再修改而是返回新的对象来代表修改后的状态。在这种场景下COW可以用于处理返回新对象时的内部数据复制确保并发访问的安全性。