COW模式

作者: zhengqiuliu | 来源:发表于2019-07-31 10:16 被阅读0次

COW就是Copy-on-Write方法,写时复制。当然COW的应用领域并不局限于Immutability模式。

COW模式应用领域

CopyOnWriteArrayList 和 CopyOnWriteArraySet 这两个Copy-on-Write容器,它们背后的设计思想就是Copy-on-Write。通过COW实现读操作无锁,将读操作的性能发挥到了极致。

COW模式更多体现的是一种延时策略,只有在真正需要复制的时候才复制,而不是提前复制好,同时在操作系统fork函数中,COW还支持按需复制,在操作系统领域是能够提升性能的。对于Java提供的COW容器,由于在修改的同时会复制整个容器,所以在提升读操作性能的同时,是以内存复制为代价的。

COW最大的应用领域还是在函数式编程领域。函数式编程的基础是不可变性,所以函数式编程里面所有的修改操作都需要COW来解决。

COW模式应用

RPC框架中Router设计,服务提供方的每一次上线,下线都会更新路由信息,这时候你有两种选择。

1,通过更新Router的一个状态位来标识,但是需要把所有访问该状态位的地方进行同步,影响性能。

2,采用Immutability模式,每次上线,下线都创建新的Router对象或者删除对应的Router的对象。由于上线,下线的频率很低,所有后者是最好的选择。

Router的实现代码如下:注意需要重写equals方法,这样CopyOnWriteArraySet的add()和remove()方法才能正常工作。

相关文章

  • COW模式

    COW就是Copy-on-Write方法,写时复制。当然COW的应用领域并不局限于Immutability模式。 ...

  • CopyOnWriteArrayList 学习笔记

    CopyOnWrite WIKI Copy-on-write (CoW or COW), sometimes re...

  • 2015加州行程

    8 sea->sfo, Cow Hollow Inn 9 sfo, Cow Hollow Inn (441.08)...

  • cow二级代理

    nb的cow代理工具:https://github.com/cyfdecyf/cow/ 现在我有主机A,阿里云服务...

  • 《编书》

    某学习频道老师出题目如下: 互动时间-英文猜词 已知:cow = 奶牛 那have a cow = ? A. ...

  • Copy-on-Write模式

    Copy-on-Write,经常被缩写为 COW 或者 CoW,顾名思义就是写时复制。 Copy-on-Write...

  • Have a cow

    “have a cow” 是“有一头母牛”吗?这个意思你根本想不到 大家对cow这个词一定不陌生,它表示母牛、奶牛...

  • First Cow

    直到看完最后一秒,我还是不知道它的主题是什么,想表达什么意思。 只是觉得cookie一脸胡茬外表下是一颗温和到有点...

  • 文魁大脑初级班第七季英语单词课第三次课作业 禾廷

    请用比较的方法记住下列单词: 1,crow 乌鸦 cow 牛 牛(cow)正吃草(r),草丛里飞起一...

  • CopyOnWrite 详解

    为什会有 Copy On Write COW 在不同的操作系统,或者框架中都会有相应的实现 优点 COW 技术可以...

网友评论

      本文标题:COW模式

      本文链接:https://www.haomeiwen.com/subject/rtzarctx.html