Netty source code InternalLoggerFactory a little confused?

there is a volatile attribute in the netty internal logging framework InternalLoggerFactory that defaultFactory, does not understand why the volatile keyword is added, and if it is to implement a singleton, why not add the getDefaultFactory method in this class

Synchronize lock statement, or double check? If there is no concurrency problem with getDefaultFactory, what is the purpose of volatile here?

Sep.22,2021

volatile is for the reason that threads are visible and unlocked. It is understood that InternalLoggerFactory is a stateless class, that is to say, multithreading to call newDefaultFactory, will not have state disorder, and will eventually achieve the desired results

.
MySQL Query : SELECT * FROM `codeshelper`.`v9_news` WHERE status=99 AND catid='6' ORDER BY rand() LIMIT 5
MySQL Error : Disk full (/tmp/#sql-temptable-64f5-1c2ee8d-33c41.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
MySQL Errno : 1021
Message : Disk full (/tmp/#sql-temptable-64f5-1c2ee8d-33c41.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
Need Help?