Package org.springframework.util
Class CustomizableThreadCreator
- java.lang.Object
- org.springframework.util.CustomizableThreadCreator
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
CustomizableThreadFactory
,SimpleAsyncTaskExecutor
public class CustomizableThreadCreator extends Object implements Serializable
Simple customizable helper class for creating newThread
instances. Provides various bean properties: thread name prefix, thread priority, etc.Serves as base class for thread factories such as
CustomizableThreadFactory
.- Since:
- 2.0.3
- Author:
- Juergen Hoeller
- See Also:
CustomizableThreadFactory
, Serialized Form
Constructor Summary
Constructors Constructor Description CustomizableThreadCreator()
Create a new CustomizableThreadCreator with default thread name prefix.CustomizableThreadCreator(String threadNamePrefix)
Create a new CustomizableThreadCreator with the given thread name prefix.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Thread
createThread(Runnable runnable)
Template method for the creation of a newThread
.protected String
getDefaultThreadNamePrefix()
Build the default thread name prefix for this factory.ThreadGroup
getThreadGroup()
Return the thread group that threads should be created in (ornull
for the default group).String
getThreadNamePrefix()
Return the thread name prefix to use for the names of newly created threads.int
getThreadPriority()
Return the priority of the threads that this factory creates.boolean
isDaemon()
Return whether this factory should create daemon threads.protected String
nextThreadName()
Return the thread name to use for a newly createdThread
.void
setDaemon(boolean daemon)
Set whether this factory is supposed to create daemon threads, just executing as long as the application itself is running.void
setThreadGroup(ThreadGroup threadGroup)
Specify the thread group that threads should be created in.void
setThreadGroupName(String name)
Specify the name of the thread group that threads should be created in.void
setThreadNamePrefix(String threadNamePrefix)
Specify the prefix to use for the names of newly created threads.void
setThreadPriority(int threadPriority)
Set the priority of the threads that this factory creates.
Constructor Detail
CustomizableThreadCreator
public CustomizableThreadCreator()
Create a new CustomizableThreadCreator with default thread name prefix.
CustomizableThreadCreator
public CustomizableThreadCreator(String threadNamePrefix)
Create a new CustomizableThreadCreator with the given thread name prefix.- Parameters:
threadNamePrefix
- the prefix to use for the names of newly created threads
Method Detail
setThreadNamePrefix
public void setThreadNamePrefix(String threadNamePrefix)
Specify the prefix to use for the names of newly created threads. Default is "SimpleAsyncTaskExecutor-".
getThreadNamePrefix
public String getThreadNamePrefix()
Return the thread name prefix to use for the names of newly created threads.
setThreadPriority
public void setThreadPriority(int threadPriority)
Set the priority of the threads that this factory creates. Default is 5.- See Also:
Thread.NORM_PRIORITY
getThreadPriority
public int getThreadPriority()
Return the priority of the threads that this factory creates.
setDaemon
public void setDaemon(boolean daemon)
Set whether this factory is supposed to create daemon threads, just executing as long as the application itself is running.Default is "false": Concrete factories usually support explicit cancelling. Hence, if the application shuts down, Runnables will by default finish their execution.
Specify "true" for eager shutdown of threads which still actively execute a
Runnable
at the time that the application itself shuts down.- See Also:
Thread.setDaemon(boolean)
isDaemon
public boolean isDaemon()
Return whether this factory should create daemon threads.
setThreadGroupName
public void setThreadGroupName(String name)
Specify the name of the thread group that threads should be created in.
setThreadGroup
public void setThreadGroup(ThreadGroup threadGroup)
Specify the thread group that threads should be created in.- See Also:
setThreadGroupName(java.lang.String)
getThreadGroup
public ThreadGroup getThreadGroup()
Return the thread group that threads should be created in (ornull
for the default group).
createThread
public Thread createThread(Runnable runnable)
Template method for the creation of a newThread
.The default implementation creates a new Thread for the given
Runnable
, applying an appropriate thread name.- Parameters:
runnable
- the Runnable to execute- See Also:
nextThreadName()
nextThreadName
protected String nextThreadName()
Return the thread name to use for a newly createdThread
.The default implementation returns the specified thread name prefix with an increasing thread count appended: e.g. "SimpleAsyncTaskExecutor-0".
- See Also:
getThreadNamePrefix()
getDefaultThreadNamePrefix
protected String getDefaultThreadNamePrefix()
Build the default thread name prefix for this factory.- Returns:
- the default thread name prefix (never
null
)