public static ExecutorService newSingleThreadExecutor(
      String poolName, Thread.UncaughtExceptionHandler handler) {
    logger.info(NEW_SINGLE_THREAD_POOL_LOGGER_FORMAT, poolName);
    return new WrappedSingleThreadExecutorService(
        new ThreadPoolExecutor(
            1,
            1,
            0L,
            TimeUnit.MILLISECONDS,
            new LinkedBlockingQueue<>(),
            new IoTThreadFactory(poolName, handler)),
        poolName);
  }
see {@link Executors#newSingleThreadExecutor(java.util.concurrent.ThreadFactory)}.

@param poolName the name of thread pool.
@return thread pool.
iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/IoTDBThreadPoolFactory.java