|
spring-context | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.springframework.util.CustomizableThreadCreator
org.springframework.scheduling.concurrent.CustomizableThreadFactory
org.springframework.scheduling.concurrent.ExecutorConfigurationSupport
org.springframework.scheduling.concurrent.ThreadPoolExecutorFactoryBean
public class ThreadPoolExecutorFactoryBean
JavaBean that allows for configuring a JDK 1.5 ThreadPoolExecutor
in bean style (through its "corePoolSize", "maxPoolSize", "keepAliveSeconds",
"queueCapacity" properties) and exposing it as a bean reference of its native
ExecutorService
type.
For an alternative, you may set up a ThreadPoolExecutor instance directly using
constructor injection, or use a factory method definition that points to the JDK 1.5
Executors
class.
If you need a timing-based ScheduledExecutorService
instead, consider ScheduledExecutorFactoryBean
.
ExecutorService
,
Executors
,
ThreadPoolExecutor
,
Serialized FormField Summary |
---|
Fields inherited from class org.springframework.scheduling.concurrent.ExecutorConfigurationSupport |
---|
logger |
Constructor Summary | |
---|---|
ThreadPoolExecutorFactoryBean()
|
Method Summary | |
---|---|
protected java.util.concurrent.BlockingQueue<java.lang.Runnable> |
createQueue(int queueCapacity)
Create the BlockingQueue to use for the ThreadPoolExecutor. |
java.util.concurrent.ExecutorService |
getObject()
|
java.lang.Class<? extends java.util.concurrent.ExecutorService> |
getObjectType()
|
protected java.util.concurrent.ExecutorService |
initializeExecutor(java.util.concurrent.ThreadFactory threadFactory,
java.util.concurrent.RejectedExecutionHandler rejectedExecutionHandler)
Create the target ExecutorService instance. |
boolean |
isSingleton()
|
void |
setAllowCoreThreadTimeOut(boolean allowCoreThreadTimeOut)
Specify whether to allow core threads to time out. |
void |
setCorePoolSize(int corePoolSize)
Set the ThreadPoolExecutor's core pool size. |
void |
setExposeUnconfigurableExecutor(boolean exposeUnconfigurableExecutor)
Specify whether this FactoryBean should expose an unconfigurable decorator for the created executor. |
void |
setKeepAliveSeconds(int keepAliveSeconds)
Set the ThreadPoolExecutor's keep-alive seconds. |
void |
setMaxPoolSize(int maxPoolSize)
Set the ThreadPoolExecutor's maximum pool size. |
void |
setQueueCapacity(int queueCapacity)
Set the capacity for the ThreadPoolExecutor's BlockingQueue. |
Methods inherited from class org.springframework.scheduling.concurrent.ExecutorConfigurationSupport |
---|
afterPropertiesSet, destroy, initialize, setBeanName, setRejectedExecutionHandler, setThreadFactory, setThreadNamePrefix, setWaitForTasksToCompleteOnShutdown, shutdown |
Methods inherited from class org.springframework.scheduling.concurrent.CustomizableThreadFactory |
---|
newThread |
Methods inherited from class org.springframework.util.CustomizableThreadCreator |
---|
createThread, getDefaultThreadNamePrefix, getThreadGroup, getThreadNamePrefix, getThreadPriority, isDaemon, nextThreadName, setDaemon, setThreadGroup, setThreadGroupName, setThreadPriority |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.springframework.beans.factory.InitializingBean |
---|
afterPropertiesSet |
Methods inherited from interface org.springframework.beans.factory.DisposableBean |
---|
destroy |
Constructor Detail |
---|
public ThreadPoolExecutorFactoryBean()
Method Detail |
---|
public void setCorePoolSize(int corePoolSize)
This setting can be modified at runtime, for example through JMX.
public void setMaxPoolSize(int maxPoolSize)
Integer.MAX_VALUE
.
This setting can be modified at runtime, for example through JMX.
public void setKeepAliveSeconds(int keepAliveSeconds)
This setting can be modified at runtime, for example through JMX.
public void setAllowCoreThreadTimeOut(boolean allowCoreThreadTimeOut)
Default is "false". Note that this feature is only available on Java 6 or above. On Java 5, consider switching to the backport-concurrent version of ThreadPoolTaskExecutor which also supports this feature.
ThreadPoolExecutor.allowCoreThreadTimeOut(boolean)
public void setQueueCapacity(int queueCapacity)
Integer.MAX_VALUE
.
Any positive value will lead to a LinkedBlockingQueue instance; any other value will lead to a SynchronousQueue instance.
LinkedBlockingQueue
,
SynchronousQueue
public void setExposeUnconfigurableExecutor(boolean exposeUnconfigurableExecutor)
Default is "false", exposing the raw executor as bean reference. Switch this flag to "true" to strictly prevent clients from modifying the executor's configuration.
Executors.unconfigurableScheduledExecutorService(java.util.concurrent.ScheduledExecutorService)
protected java.util.concurrent.ExecutorService initializeExecutor(java.util.concurrent.ThreadFactory threadFactory, java.util.concurrent.RejectedExecutionHandler rejectedExecutionHandler)
ExecutorConfigurationSupport
ExecutorService
instance.
Called by afterPropertiesSet
.
initializeExecutor
in class ExecutorConfigurationSupport
threadFactory
- the ThreadFactory to userejectedExecutionHandler
- the RejectedExecutionHandler to use
ExecutorConfigurationSupport.afterPropertiesSet()
protected java.util.concurrent.BlockingQueue<java.lang.Runnable> createQueue(int queueCapacity)
A LinkedBlockingQueue instance will be created for a positive capacity value; a SynchronousQueue else.
queueCapacity
- the specified queue capacity
LinkedBlockingQueue
,
SynchronousQueue
public java.util.concurrent.ExecutorService getObject() throws java.lang.Exception
getObject
in interface org.springframework.beans.factory.FactoryBean<java.util.concurrent.ExecutorService>
java.lang.Exception
public java.lang.Class<? extends java.util.concurrent.ExecutorService> getObjectType()
getObjectType
in interface org.springframework.beans.factory.FactoryBean<java.util.concurrent.ExecutorService>
public boolean isSingleton()
isSingleton
in interface org.springframework.beans.factory.FactoryBean<java.util.concurrent.ExecutorService>
|
spring-context | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |