code: public static ThreadPoolExecutor getAsyncThreadPool(boolean build) {
          if (asyncThreadPool == null && build) {
              synchronized (AsyncRuntime.class) {
                  if (asyncThreadPool == null && build) {
                      // 一些系统参数，可以从配置或者注册中心获取。
                      int coresize = RpcConfigs.getIntValue(RpcOptions.ASYNC_POOL_CORE);
                      int maxsize = RpcConfigs.getIntValue(RpcOptions.ASYNC_POOL_MAX);
                      int queuesize = RpcConfigs.getIntValue(RpcOptions.ASYNC_POOL_QUEUE);
                      int keepAliveTime = RpcConfigs.getIntValue(RpcOptions.ASYNC_POOL_TIME);
  
                      BlockingQueue<Runnable> queue = ThreadPoolUtils.buildQueue(queuesize);
                      NamedThreadFactory threadFactory = new NamedThreadFactory("RPC-CB", true);
  
                      RejectedExecutionHandler handler = new RejectedExecutionHandler() {
                          private int i = 1;
  
                          @Override
                          public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
                              if (i++ % 7 == 0) {
                                  i = 1;
                                  if (LOGGER.isWarnEnabled()) {
                                      LOGGER.warn("Task:{} has been reject because of threadPool exhausted!" +
                                          " pool:{}, active:{}, queue:{}, taskcnt: {}", r,
                                          executor.getPoolSize(),
                                          executor.getActiveCount(),
                                          executor.getQueue().size(),
                                          executor.getTaskCount());
                                  }
                              }
                              throw new RejectedExecutionException("Callback handler thread pool has bean exhausted");
                          }
                      };
                      asyncThreadPool = ThreadPoolUtils.newCachedThreadPool(
                          coresize, maxsize, keepAliveTime, queue, threadFactory, handler);
                  }
              }
          }
          return asyncThreadPool;
      }
docs: 得到callback用的线程池
  
  @param build 没有时是否构建
  @return callback用的线程池