class AlibabaDubboDtpAdapter extends AbstractDtpAdapter implements InitializingBean {

    private static final String TP_PREFIX = "dubboTp";

    private static final String EXECUTOR_FIELD = "executor";

    private final AtomicBoolean registered = new AtomicBoolean(false);

    @Override
    public void afterPropertiesSet() throws Exception {
        //从ApplicationReadyEvent改为ContextRefreshedEvent后，
        //启动时无法dubbo获取线程池，这里直接每隔1s轮循，直至成功初始化线程池
        ExecutorService executor = Executors.newSingleThreadExecutor();
        executor.submit(() -> {
            while (!registered.get()) {
                try {
                    Thread.sleep(1000);
                    DtpProperties dtpProperties = ApplicationContextHolder.getBean(DtpProperties.class);
                    this.initialize();
                    this.refresh(dtpProperties);
                } catch (Throwable e) { }
            }
        });
        executor.shutdown();
    }

    @Override
    public void refresh(DtpProperties dtpProperties) {
        refresh(dtpProperties.getDubboTp(), dtpProperties.getPlatforms());
    }

    @Override
    protected void initialize() {<FILL_FUNCTION_BODY>}

    @Override
    protected String getTpPrefix() {
        return TP_PREFIX;
    }

    private String genTpName(String port) {
        return TP_PREFIX + "#" + port;
    }
}

        super.initialize();
        val handlers = JVMTI.getInstances(WrappedChannelHandler.class);
        if (CollectionUtils.isNotEmpty(handlers) && registered.compareAndSet(false, true)) {
            DataStore dataStore = ExtensionLoader.getExtensionLoader(DataStore.class).getDefaultExtension();
            handlers.forEach(handler -> {
                val executor = handler.getExecutor();
                if (executor instanceof ThreadPoolExecutor) {
                    String port = String.valueOf(handler.getUrl().getPort());
                    String tpName = genTpName(port);
                    enhanceOriginExecutor(tpName, (ThreadPoolExecutor) executor, EXECUTOR_FIELD, handler);
                    dataStore.put(EXECUTOR_SERVICE_COMPONENT_KEY, port, handler.getExecutor());
                }
            });
        }
    
<methods>public non-sealed void <init>() ,public Map<java.lang.String,org.dromara.dynamictp.core.support.ExecutorWrapper> getExecutorWrappers() ,public List<org.dromara.dynamictp.common.entity.ThreadPoolStats> getMultiPoolStats() ,public void refresh(List<org.dromara.dynamictp.common.entity.TpExecutorProps>, List<org.dromara.dynamictp.common.entity.NotifyPlatform>) ,public void refresh(org.dromara.dynamictp.core.support.ExecutorWrapper, List<org.dromara.dynamictp.common.entity.NotifyPlatform>, org.dromara.dynamictp.common.entity.TpExecutorProps) <variables>private static final Equator EQUATOR,protected final Map<java.lang.String,org.dromara.dynamictp.core.support.ExecutorWrapper> executors