An object that creates new threads on demand. Using thread factories removes hardwiring of calls to new Thread , enabling applications to use special thread subclasses, priorities, etc.

The simplest implementation of this interface is just:

 class SimpleThreadFactory implements ThreadFactory {
   public Thread newThread(Runnable r) {
     return new Thread(r);
   }
 }
 
The Executors#defaultThreadFactory method provides a more useful simple implementation, that sets the created thread context to known values before returning it.
@since
1.5
@author
Doug Lea
Constructs a new Thread. Implementations may also initialize priority, name, daemon status, ThreadGroup, etc.
Parameters
ra runnable to be executed by new thread instance
Return
constructed thread