Returns a new worker thread operating in the given pool. Returning null or throwing an exception may result in tasks never being executed. If this method throws an exception, it is relayed to the caller of the method (for example {@code execute}) causing attempted thread creation. If this method returns null or throws an exception, it is not retried until the next attempted creation (for example another call to {@code execute}).
Factory for creating new {@link ForkJoinWorkerThread}s. A {@code ForkJoinWorkerThreadFactory} must be defined and used for {@code ForkJoinWorkerThread} subclasses that extend base functionality or initialize threads with different contexts.