很多线程读,少数线程写。
要改成很多线程读,一个线程写。
这个时候把这个变量设成immutable,那么当这个对象改变的时候,其实是用一个新的immutable替代了旧的immutable。这个可以有。
那么读的线程比较版本号来确定自己读到的是不是最新的。通常没必要,要看你的需求,根据需求也有别的做法。
如果一个immutable的对象真的是不变的,那为啥还要共享呢?一个就像你说的,通过immutable来节省内存。更重要的是线程之间的数据交流。而用不变的值来交换数据比用变量安全得多。
一个完全固定不变的东西,难道不应该直接就给线程一个值就结束了?可以这么说。这样你是不是觉得很简单。把复杂的事情简单化,就是使用值代替变量的初衷。