首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ThreadPool对ThreadExecutor

ThreadPool对ThreadExecutor
EN

Stack Overflow用户
提问于 2014-12-17 13:27:45
回答 1查看 1.2K关注 0票数 2

在Quartz框架中,ThreadPool和ThreadExecutor有什么区别?

您可以在quartz.properties中像这样配置它:

代码语言:javascript
复制
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5

org.quartz.threadExecutor.class = org.quartz.commonj.WorkManagerThreadExecutor

我不明白。查看org.quartz.commonj.WorkManagerThreadExecutor,它只是从jndi中查找commonj.work.WorkManager,然后使用该管理器运行作业任务。

在JNDI上下文中声明commonj.work.WorkManager时,可以配置线程计数等。就像这样

代码语言:javascript
复制
<Resource auth="Container" 
          factory="de.myfoo.commonj.work.FooWorkManagerFactory"
          maxThreads="2" 
          minThreads="1" 
          name="wm/workManager"
          type="commonj.work.WorkManager" />
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-17 23:13:39

区别在于,SimpleThreadPool提供的线程(或者在Quartz属性中配置的任何其他线程池实现)是非托管线程,即不是由容器管理的线程。

另一方面,配置的工作管理器提供的线程是由容器创建并通常通过容器的管理控制台配置的托管线程

在J2EE世界中,创建非托管线程通常是非常不鼓励的,如果您检查J2EE规范,您会发现在这里显式地提到了它(或者它曾经在那里)。

有关该主题的更多详细信息,您可能希望查看此SO post

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27526682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档