awaitility/src/main/java/org/awaitility/core/ConditionFactory.java
public ConditionFactory pollThread(final Function<Runnable, Thread> threadSupplier) {
        return new ConditionFactory(alias, timeoutConstraint, pollInterval, pollDelay, false,
                exceptionsIgnorer, conditionEvaluationListener, ExecutorLifecycle.withNormalCleanupBehavior(new Supplier<ExecutorService>() {
            @Override
            public ExecutorService get() {
                return InternalExecutorServiceFactory.create(threadSupplier);
            }
        }));
    }
public ConditionFactory pollThread(final Function<Runnable, Thread> threadSupplier) {
        return new ConditionFactory(alias, timeoutConstraint, pollInterval, pollDelay, false,
                exceptionsIgnorer, conditionEvaluationListener, ExecutorLifecycle.withNormalCleanupBehavior(new Supplier<ExecutorService>() {
            @Override
            public ExecutorService get() {
                return InternalExecutorServiceFactory.create(threadSupplier);
            }
        }));
    }
Specify a thread supplier whose thread will be used to evaluate the poll condition in Awaitility.
The supplier will be called only once and the thread it returns will be reused during all condition evaluations.
This is an advanced feature and it should only be used sparingly.

@param threadSupplier A supplier of the thread that Awaitility will use when polling
@return the condition factory