Class ThreadFactoryBuilder
- java.lang.Object
-
- com.google.common.util.concurrent.ThreadFactoryBuilder
-
@GwtIncompatible public final class ThreadFactoryBuilder extends Object
A ThreadFactory builder, providing any combination of these features:- whether threads should be marked as daemon threads
- a naming format
- a thread priority
- an uncaught exception handler
- a backing thread factory
If no backing thread factory is provided, a default backing thread factory is used as if by calling
setThreadFactory(
Executors.defaultThreadFactory()
)
.Java 21+ users: consider using the
Thread.Builder
interface instead. E.g., instead ofnew ThreadFactoryBuilder().setPriority(priority).setDaemon(false).build()
, useThread.ofPlatform().priority(priority).daemon(false).factory()
.- Since:
- 4.0
- Author:
- Kurt Alfred Kluever
-
-
Constructor Summary
Constructors Constructor Description ThreadFactoryBuilder()
Creates a newThreadFactory
builder.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ThreadFactory
build()
Returns a new thread factory using the options supplied during the building process.ThreadFactoryBuilder
setDaemon(boolean daemon)
Sets daemon or not for new threads created with this ThreadFactory.ThreadFactoryBuilder
setNameFormat(String nameFormat)
Sets the naming format to use when naming threads (Thread.setName(java.lang.String)
) which are created with this ThreadFactory.ThreadFactoryBuilder
setPriority(int priority)
Sets the priority for new threads created with this ThreadFactory.ThreadFactoryBuilder
setThreadFactory(ThreadFactory backingThreadFactory)
Sets the backingThreadFactory
for new threads created with this ThreadFactory.ThreadFactoryBuilder
setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler uncaughtExceptionHandler)
Sets theThread.UncaughtExceptionHandler
for new threads created with this ThreadFactory.
-
-
-
Constructor Detail
-
ThreadFactoryBuilder
public ThreadFactoryBuilder()
Creates a newThreadFactory
builder.
-
-
Method Detail
-
setNameFormat
@CanIgnoreReturnValue public ThreadFactoryBuilder setNameFormat(String nameFormat)
Sets the naming format to use when naming threads (Thread.setName(java.lang.String)
) which are created with this ThreadFactory.- Parameters:
nameFormat
- aString.format(String, Object...)
-compatible format String, to which a unique integer (0, 1, etc.) will be supplied as the single parameter. This integer will be unique to the built instance of the ThreadFactory and will be assigned sequentially. For example,"rpc-pool-%d"
will generate thread names like"rpc-pool-0"
,"rpc-pool-1"
,"rpc-pool-2"
, etc.- Returns:
- this for the builder pattern
-
setDaemon
@CanIgnoreReturnValue public ThreadFactoryBuilder setDaemon(boolean daemon)
Sets daemon or not for new threads created with this ThreadFactory.- Parameters:
daemon
- whether or not new Threads created with this ThreadFactory will be daemon threads- Returns:
- this for the builder pattern
-
setPriority
@CanIgnoreReturnValue public ThreadFactoryBuilder setPriority(int priority)
Sets the priority for new threads created with this ThreadFactory.Warning: relying on the thread scheduler is discouraged.
- Parameters:
priority
- the priority for new Threads created with this ThreadFactory- Returns:
- this for the builder pattern
-
setUncaughtExceptionHandler
@CanIgnoreReturnValue public ThreadFactoryBuilder setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler uncaughtExceptionHandler)
Sets theThread.UncaughtExceptionHandler
for new threads created with this ThreadFactory.- Parameters:
uncaughtExceptionHandler
- the uncaught exception handler for new Threads created with this ThreadFactory- Returns:
- this for the builder pattern
-
setThreadFactory
@CanIgnoreReturnValue public ThreadFactoryBuilder setThreadFactory(ThreadFactory backingThreadFactory)
Sets the backingThreadFactory
for new threads created with this ThreadFactory. Threads will be created by invoking #newThread(Runnable) on this backingThreadFactory
.- Parameters:
backingThreadFactory
- the backingThreadFactory
which will be delegated to during thread creation.- Returns:
- this for the builder pattern
- See Also:
MoreExecutors
-
build
public ThreadFactory build()
Returns a new thread factory using the options supplied during the building process. After building, it is still possible to change the options used to build the ThreadFactory and/or build again. State is not shared amongst built instances.- Returns:
- the fully constructed
ThreadFactory
-
-