private ExecutorService getExecutorService(final int executorSize, final String nameFormat) {
        ThreadFactory threadFactory = ExecutorThreadFactoryBuilder.build(nameFormat);
        return 0 == executorSize ? Executors.newCachedThreadPool(threadFactory) : Executors.newFixedThreadPool(executorSize, threadFactory);
    }
@Test
    void assertThreadLocalValueChangedForReusedThread() {
        AtomicBoolean finished = new AtomicBoolean(false);
        ExecutorService executorService = new ExecutorServiceManager(1).getExecutorService();
        executorService.submit(() -> {
            TRANSMITTABLE_THREAD_LOCAL.set("foo");
            executorService.submit(() -> assertThat(TRANSMITTABLE_THREAD_LOCAL.get(), is("foo")));
        });
        TRANSMITTABLE_THREAD_LOCAL.set("bar");
        executorService.submit(() -> {
            assertValueChangedInConcurrencyThread();
            finished.set(true);
        });
        assertTimeout(Duration.ofSeconds(1L), () -> assertFinished(finished));
    }