一段单例模式的代码

class ConnectionPoolManager {

    private static final Object LOCK = new Object();

    private static ConnectionPoolManager connectionPoolManager = null;

    public static ConnectionPoolManager getInstance() {
        //这里有两次判断,我理解为减少不必要的同步开销
        if (connectionPoolManager == null) {
            synchronized (LOCK) {
                if (connectionPoolManager == null) {
                    connectionPoolManager = new ConnectionPoolManager();
                }
            }
        }
        return connectionPoolManager;
    }
    
    private ConnectionPoolManager(){
        super();
    }

}



感谢一下下面这个哥们的提醒。

你可能感兴趣的:(thread,多线程)