首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Webapp Executors类

Java Webapp Executors类
EN

Stack Overflow用户
提问于 2012-09-12 02:50:55
回答 1查看 116关注 0票数 0

Java - webapp通过Executors类执行线程的优势是什么,如下面的代码,而不是以固定的池大小运行。

代码语言:javascript
复制
private ExecutorService threadRunner;
threadRunner = Executors.newFixedThreadPool(2);

threadRunner.submit(activeQueueRunner);
threadRunner.submit(standbyQueueRunner);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-12 02:58:05

线程包含大量的支持结构,这些结构的创建成本很高。Executor是一次创建的线程池,但被包装在所需的支持代码中,以便在多个任务之间重用。

换句话说,如果您只向大小为2的新固定线程池提交两个项目,则没有任何优势。当您将第三个项目提交到threadRunner池时,好处就来了,因为它将绑定到已完成任务的前一个线程(activeQueueRunnerstandbyQueueRunner),并使用该线程来执行其run(...)块。

如果您将提交的任务编写为永不完成,则它们基本上永远不会将线程释放回池。因此,在使用Executor类型的池时,最好创建大量快速的轻量级任务,并让池在整个程序运行过程中分摊创建/销毁线程的昂贵成本。

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

https://stackoverflow.com/questions/12376075

复制
相关文章

相似问题

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