netty内部日志框架InternalLoggerFactory中有一个volatile属性defaultFactory,不明白为啥要添加volatile关键字、如果说是为了实现单例,那么此类中的getDefaultFactory方法为什么不添加
同步锁语句、或者采用双重检查呢?如果说getDefaultFactory不存在并发问题、那么这里的volatile又是为了什么呢?
netty内部日志框架InternalLoggerFactory中有一个volatile属性defaultFactory,不明白为啥要添加volatile关键字、如果说是为了实现单例,那么此类中的getDefaultFactory方法为什么不添加
同步锁语句、或者采用双重检查呢?如果说getDefaultFactory不存在并发问题、那么这里的volatile又是为了什么呢?
volatile 是为了线程可见,不加锁的原因,理解是因为 InternalLoggerFactory 是个无状态的类,也就是说多线程去调用 newDefaultFactory,不会有状态紊乱,最终都能达到预期效果