在为金融服务行业构建大型多线程应用程序时,我尽可能使用不可变类和 Actor 模型进行工作流。我对结果很满意。它使用了相当多的堆空间(在 Java 中顺便说一下),但 JVM 的 GC 与短暂的不可变类一起工作得很好。
我只是想知道今后使用这种模式是否有任何缺点?在调试团队成员代码时,我经常发现自己以一种或另一种方式推荐这种模式。我想一旦有了锤子,一切看起来都像钉子。所以问题是:这种设计模式(范式?)什么时候效果不佳?
我的预感是当内存使用是一个大问题时,或者当项目限制需要一些类似于低级 C 的东西时,等等。
最佳答案
许多科学模拟代码非常占用内存。例如,对于元胞自动机模型,快速内存访问比 CPU 能力更重要。在这种情况下,访问和修改可变数组总是更快(至少在我所有的试验中)。
关于scala - 使用 Immutability + Actor 模型进行并发编程有哪些弱点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7748904/