string 不能做锁的原因不是不可变。是因为字符串常量池的原因,string 可能会被全局共享,导致不同业务代码竞争同一把锁。而且,不可变对象也是一种解决并发安全问题的方法