简单来说就是Spring给你优化了Java的线程池,方便你的使用.
简介:
Spring的TaskExecutor接口等同于java.util.concurrent.Executor接口。 实际上,它存在的主要原因是为了在使用线程池的时候,将对Java 5的依赖抽象出来。 这个接口只有一个方法execute(Runnable
task),它根据线程池的语义和配置,来接受一个执行任务。
最初创建TaskExecutor是为了在需要时给其他Spring组件提供一个线程池的抽象。 例如ApplicationEventMulticaster组件、JMS的AbstractMessageListenerContainer和对Quartz的整合都使用了TaskExecutor抽象来提供线程池。
当然,如果你的bean需要线程池行为,你也可以使用这个抽象层。
常用的实现类有:
-
SimpleAsyncTaskExecutor类(异步)这个实现不重用任何线程,或者说它每次调用都启动一个新线程。但是,它还是支持对并发总数设限,当超过线程并发总数限制时,阻塞新的调用,直到有位置被释放。如果你需要真正的池,请继续往下看。
-
这个实现不会异步执行。相反,每次调用都在发起调用的线程中执行。它的主要用处是在不需要多线程的时候,比如简单的test case。
本文介绍了Spring框架中的TaskExecutor接口,它是java.util.concurrent.Executor接口的一种抽象形式,主要用于将对Java5线程池的依赖进行抽象。文章还详细解释了两种实现类:SimpleAsyncTaskExecutor和SyncTaskExecutor,并说明了它们的应用场景。
613

被折叠的 条评论
为什么被折叠?



