class NotReusableClientTransportHolder implements ClientTransportHolder {

    @Override
    public ClientTransport getClientTransport(ClientTransportConfig config) {

        ClientTransport transport = allTransports.get(config);
        if (transport == null) {
            transport = ExtensionLoaderFactory.getExtensionLoader(ClientTransport.class)
                .getExtension(config.getContainer(),
                    new Class[] { ClientTransportConfig.class },
                    new Object[] { config });
            ClientTransport old = allTransports.putIfAbsent(config, transport); // 保存唯一长连接
            if (old != null) {
                if (LOGGER.isWarnEnabled()) {
                    LOGGER.warn("Multiple threads init ClientTransport with same ClientTransportConfig!");
                }
                transport.destroy(); //如果同时有人插入，则使用第一个
                transport = old;
            }
        }
        return transport;
    }

}