一般情况下,我们使用 AtomicBoolean 高效并发处理 “只初始化一次” 的功能要求:

private static AtomicBoolean initialized = new AtomicBoolean(false);
    public void init()
    {
       if( initialized.compareAndSet(false, true) )//如果为false,更新为true
       {
           // 这里放置初始化代码....
       }
    }

 如果没有AtomicBoolean,我们可以使用volatile做如下操作:

public static volatile initialized = false;
    public void init()
    {
        if( initialized == false ){
            initialized = true;
            // 这里初始化代码....
        }
    }