@Bean
    @ConditionalOnProperty(name = "shenyu.shared-pool.enable", havingValue = "true", matchIfMissing = true)
    public ShenyuThreadPoolExecutor shenyuThreadPoolExecutor(final ShenyuConfig shenyuConfig,
                                                             final @Qualifier("taskQueue") ObjectProvider<TaskQueue<Runnable>> provider) {
        final ShenyuConfig.SharedPool sharedPool = shenyuConfig.getSharedPool();
        final Integer corePoolSize = sharedPool.getCorePoolSize();
        final Integer maximumPoolSize = sharedPool.getMaximumPoolSize();
        final Long keepAliveTime = sharedPool.getKeepAliveTime();
        return new ShenyuThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime,
                TimeUnit.MILLISECONDS, provider.getIfAvailable(() -> new MemorySafeTaskQueue<>(Constants.THE_256_MB)),
                ShenyuThreadFactory.create(sharedPool.getPrefix(), true),
                new ThreadPoolExecutor.AbortPolicy());
    }
create shenyu shared thread pool executor.

@param shenyuConfig the shenyu config
@param provider     the queue bean provider
@return the shenyu thread pool executor
shenyu-web/src/main/java/org/apache/shenyu/web/configuration/ShenyuThreadPoolConfiguration.java