前言 区别于java设计模式,下面介绍的是在多线程场景下,如何设计出合理的思路. 不可变对象模式 场景 1. 对象的变化频率不高 每一次变化就是一次深拷贝,会影响cpu以及gc,如果频繁操作会影响性能 2. 作为hashmap的key key如果是可变的,那么会无法从hashmap中找到原来的数据 3. 单线程写,多线程读或者遍历等场景 这种场景在读或写的任何操作都不需要加锁,如果是多线程场景那么在写的时候需要加锁. 思路 让对象从初始化开始就不能被修改从而满足天然的线程安全条件,也就是说其他任…