Java并发编程实践读书笔记(3)任务执行
生活随笔
收集整理的这篇文章主要介绍了
Java并发编程实践读书笔记(3)任务执行
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
类似于Web服务器这种多任务情况时,不可能只用一个线程来对外提供服务。这样效率和吞吐量都太低。
但是也不能来一个请求就创建一个线程,因为创建线程的成本很高,系统能创建的线程数量是有限的。
于是Executor就出现 了。
Executor框架
线程池的意义
线程创建太少了浪费服务器资源,另外线程创建多了又搞得服务器很累。两个极端的结果都是对外的吞吐量上不去。
所以线程是需要统一管理的,不能随便new Thread().start()。
Executor提供了四种线程池。
ExecutorService管理功能
包括:关闭和强制关闭、是否关闭、是否中断、等待中断、提交任务、批量提交任务。
找出可利用的并行性
多个任务如果可以并行那最好就让它并行:
通常,执行时间相差很大的异构任务的并行没有意义,执行时间受限于执行时间最长的那个任务:
这种情况,要考虑的是把taskA给分解了。
ExecutorCompletionService可以批量提交任务并获取执行结果;
转载于:https://www.cnblogs.com/at0x7c00/p/8134663.html
总结
以上是生活随笔为你收集整理的Java并发编程实践读书笔记(3)任务执行的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 学习进度条(第六周)
- 下一篇: Java中 VO、 PO、DO、DTO、