public static ScheduledThreadPoolExecutor buildDefaultTimeoutThreadPool(final String name) {
        ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(5, getThreadFactory(name));
        safeSetRemoveOnCancel(executor);
        executor.setKeepAliveTime(5, TimeUnit.SECONDS);
        executor.allowCoreThreadTimeOut(true);

        return executor;
    }
Creates a {@link ScheduledThreadPoolExecutor} with custom name for the threads.

@param name the prefix to add to the thread name in ThreadFactory.
@return The default thread pool for request timeout and client execution timeout features.
aws-java-sdk-core/src/main/java/com/amazonaws/http/timers/TimeoutThreadPoolBuilder.java