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

Posted 业精于勤,行成于思

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java并发编程实践读书笔记任务执行相关的知识,希望对你有一定的参考价值。

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

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

于是Executor就出现 了。

Executor框架

线程池的意义

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

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

Executor提供了四种线程池

 

ExecutorService管理功能

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

 

找出可利用的并行性

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

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

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

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

 

以上是关于Java并发编程实践读书笔记任务执行的主要内容,如果未能解决你的问题,请参考以下文章

《java并发编程实战》读书笔记5--任务执行, Executor框架

Java并发编程实践读书笔记线程安全性和对象的共享

《java并发编程实战》读书笔记6--取消与关闭

《Java并发编程实战》第六章 任务运行 读书笔记

Java 并发编程实践基础 读书笔记: 第三章 使用 JDK 并发包构建程序

java并发编程实战读书笔记 ExecutorCompletionService