不可变性的三种"深度",你踩过几个坑?

原创
alex 2小时前 阅读数 3 #头条
不可变只有一种吗?Hacker News 上有人贴了篇论文,把不可变拆成三层来谈。传递性不可变要求对象及所有内部引用都锁死;抽象不可变把承诺提到接口层,实现细节可变但契约不可变;类多态不可变解决继承场景下的兼容难题。我在并发代码里踩过不少坑,根源往往就是:你以为对象不可变,但它内部引用的东西还在悄悄变。论文试图形式化这个区分,让类型系统能捕捉真正的"全链锁定"。我的判断是:主流语言基本只实现了第一层,后两层多数还停留在论文里,但并发场景下,那两层的缺失正是竞态条件滋生的温床。

原文:Transitive, Abstract, and Class Polymorphic Immutability · 来源:Hacker News

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除