ThreadFactory
Stay organized with collections
Save and categorize content based on your preferences.
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.
Public Methods
public
abstract
Thread
newThread
(Runnable r)
Constructs a new Thread
. Implementations may also initialize
priority, name, daemon status, ThreadGroup
, etc.
Parameters
r |
a runnable to be executed by new thread instance |
Returns
- constructed thread, or
null
if the request to
create a thread is rejected
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-07-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-07-10 UTC."],[[["\u003cp\u003e\u003ccode\u003eThreadFactory\u003c/code\u003e is an interface in Java that provides a way to create new threads on demand, offering flexibility in thread creation.\u003c/p\u003e\n"],["\u003cp\u003eUsing \u003ccode\u003eThreadFactory\u003c/code\u003e promotes loose coupling by avoiding direct instantiation of \u003ccode\u003eThread\u003c/code\u003e objects.\u003c/p\u003e\n"],["\u003cp\u003eIt allows customization of thread properties like priority, name, daemon status, and \u003ccode\u003eThreadGroup\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eA simple implementation could directly create a \u003ccode\u003eThread\u003c/code\u003e, while more sophisticated ones might set context values or use custom thread subclasses.\u003c/p\u003e\n"],["\u003cp\u003eThe core method is \u003ccode\u003enewThread(Runnable r)\u003c/code\u003e, which takes a \u003ccode\u003eRunnable\u003c/code\u003e and returns a newly constructed \u003ccode\u003eThread\u003c/code\u003e.\u003c/p\u003e\n"]]],["The `ThreadFactory` interface creates new threads, avoiding hardcoded `new Thread` calls. It allows customization of threads, such as setting priorities and using subclasses. The `newThread(Runnable r)` method constructs a new `Thread` and allows for initializing thread properties like priority, name, and daemon status. `Executors.defaultThreadFactory()` offers a basic implementation that sets known thread context values, and simple `ThreadFactory` examples are also possible. A new created `Thread` or `null` will be returned.\n"],null,["# ThreadFactory\n\npublic interface **ThreadFactory** \nAn object that creates new threads on demand. Using thread factories\nremoves hardwiring of calls to [new Thread](../../../../reference/java/lang/Thread.html#Thread(java.lang.Runnable)),\nenabling applications to use special thread subclasses, priorities, etc.\n\n\nThe simplest implementation of this interface is just: \n\n class SimpleThreadFactory implements ThreadFactory {\n public Thread newThread(Runnable r) {\n return new Thread(r);\n }\n }\n\nThe [Executors.defaultThreadFactory()](../../../../reference/java/util/concurrent/Executors.html#defaultThreadFactory()) method provides a more useful simple implementation, that sets the created thread context to known values before returning it.\n\n\u003cbr /\u003e\n\n### Public Method Summary\n\n|-----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| abstract Thread | [newThread](../../../../reference/java/util/concurrent/ThreadFactory.html#newThread(java.lang.Runnable))([Runnable](../../../../reference/java/lang/Runnable.html) r) Constructs a new `Thread`. |\n\nPublic Methods\n--------------\n\n#### public abstract Thread\n**newThread**\n([Runnable](../../../../reference/java/lang/Runnable.html) r)\n\nConstructs a new `Thread`. Implementations may also initialize\npriority, name, daemon status, `ThreadGroup`, etc. \n\n##### Parameters\n\n| r | a runnable to be executed by new thread instance |\n|---|--------------------------------------------------|\n\n##### Returns\n\n- constructed thread, or `null` if the request to create a thread is rejected"]]