01: /*
02: * Written by Doug Lea with assistance from members of JCP JSR-166
03: * Expert Group and released to the public domain, as explained at
04: * http://creativecommons.org/licenses/publicdomain
05: */
06:
07: package java.util.concurrent;
08:
09: /**
10: * An object that creates new threads on demand. Using thread factories
11: * removes hardwiring of calls to {@link Thread#Thread(Runnable) new Thread},
12: * enabling applications to use special thread subclasses, priorities, etc.
13: *
14: * <p>
15: * The simplest implementation of this interface is just:
16: * <pre>
17: * class SimpleThreadFactory implements ThreadFactory {
18: * public Thread newThread(Runnable r) {
19: * return new Thread(r);
20: * }
21: * }
22: * </pre>
23: *
24: * The {@link Executors#defaultThreadFactory} method provides a more
25: * useful simple implementation, that sets the created thread context
26: * to known values before returning it.
27: * @since 1.5
28: * @author Doug Lea
29: */
30: public interface ThreadFactory {
31:
32: /**
33: * Constructs a new <tt>Thread</tt>. Implementations may also initialize
34: * priority, name, daemon status, <tt>ThreadGroup</tt>, etc.
35: *
36: * @param r a runnable to be executed by new thread instance
37: * @return constructed thread
38: */
39: Thread newThread(Runnable r);
40: }
|