这是加了volatile的双重校验锁,加volatile的目的的是为了禁止new操作的重排序,但是会导致一个问题,后续每次判断helper == null和return的时候都要从内存中读取。
可以使用局部变量优化双重校验锁,减少一次volatile读
这是加了volatile的双重校验锁,加volatile的目的的是为了禁止new操作的重排序,但是会导致一个问题,后续每次判断helper == null和return的时候都要从内存中读取。
可以使用局部变量优化双重校验锁,减少一次volatile读