码迷,mamicode.com
首页 > 编程语言 > 详细

Java并发编程实践读书笔记(3)任务执行

时间:2018-01-01 16:52:42      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:编程实践   .com   html   new t   时间   服务   ima   ice   线程池   

 类似于Web服务器这种多任务情况时,不可能只用一个线程来对外提供服务。这样效率和吞吐量都太低。

但是也不能来一个请求就创建一个线程,因为创建线程的成本很高,系统能创建的线程数量是有限的。

于是Executor就出现 了。

Executor框架

线程池的意义

线程创建太少了浪费服务器资源,另外线程创建多了又搞得服务器很累。两个极端的结果都是对外的吞吐量上不去。

所以线程是需要统一管理的,不能随便new Thread().start()。

Executor提供了四种线程池

 

ExecutorService管理功能

技术分享图片

包括:关闭和强制关闭、是否关闭、是否中断、等待中断、提交任务、批量提交任务。

 

找出可利用的并行性

多个任务如果可以并行那最好就让它并行:

技术分享图片

通常,执行时间相差很大的异构任务的并行没有意义,执行时间受限于执行时间最长的那个任务:

技术分享图片

这种情况,要考虑的是把taskA给分解了。

ExecutorCompletionService可以批量提交任务并获取执行结果;

 

Java并发编程实践读书笔记(3)任务执行

标签:编程实践   .com   html   new t   时间   服务   ima   ice   线程池   

原文地址:https://www.cnblogs.com/huqiaoblog/p/8134663.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!