Java并发编程实践读书笔记(3)任务执行
类似于Web服务器这种多任务情况时,不可能只用一个线程来对外提供服务。这样效率和吞吐量都太低。
但是也不能来一个请求就创建一个线程,因为创建线程的成本很高,系统能创建的线程数量是有限的。
于是Executor就出现 了。
Executor框架
线程池的意义
线程创建太少了浪费服务器资源,另外线程创建多了又搞得服务器很累。两个极端的结果都是对外的吞吐量上不去。
所以线程是需要统一管理的,不能随便new Thread().start()。
Executor提供了四种线程池。
ExecutorService管理功能

包括:关闭和强制关闭、是否关闭、是否中断、等待中断、提交任务、批量提交任务。
找出可利用的并行性
多个任务如果可以并行那最好就让它并行:

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

这种情况,要考虑的是把taskA给分解了。
ExecutorCompletionService可以批量提交任务并获取执行结果;
Java并发编程实践读书笔记(3)任务执行的更多相关文章
- Java并发编程实践读书笔记(5) 线程池的使用
		Executor与Task的耦合性 1,除非线程池很非常大,否则一个Task不要依赖同一个线程服务中的另外一个Task,因为这样容易造成死锁: 2,线程的执行是并行的,所以在设计Task的时候要考虑到 ... 
- Java并发编程实践(读书笔记)  任务执行(未完)
		任务的定义 大多数并发程序都是围绕任务进行管理的.任务就是抽象和离散的工作单元. 任务的执行策略 1.顺序的执行任务 这种策略的特点是一般只有按顺序处理到来的任务.一次只能处理一个任务,后来其它任 ... 
- Java并发编程实践读书笔记(2)多线程基础组件
		同步容器 同步容器是指那些对所有的操作都进行加锁(synchronize)的容器.比如Vector.HashTable和Collections.synchronizedXXX返回系列对象: 可以看到, ... 
- Java并发编程实践读书笔记(1)线程安全性和对象的共享
		2.线程的安全性 2.1什么是线程安全 在多个线程访问的时候,程序还能"正确",那就是线程安全的. 无状态(可以理解为没有字段的类)的对象一定是线程安全的. 2.2 原子性 典型的 ... 
- Java并发编程实践读书笔记(4)任务取消和关闭
		任务的取消 中断传递原理 Java中没有抢占式中断,就是武力让线程直接中断. Java中的中断可以理解为就是一种简单的消息机制.某个线程可以向其他线程发送消息,告诉你“你应该中断了”.收到这条消息的线 ... 
- Java并发编程实战 读书笔记(二)
		关于发布和逸出 并发编程实践中,this引用逃逸("this"escape)是指对象还没有构造完成,它的this引用就被发布出去了.这是危及到线程安全的,因为其他线程有可能通过这个 ... 
- Java并发编程实战  读书笔记(一)
		最近在看多线程经典书籍Java并发变成实战,很多概念有疑惑,虽然工作中很少用到多线程,但觉得还是自己太弱了.加油.记一些随笔.下面简单介绍一下线程. 一 线程与进程 进程与线程的解释 个人觉 ... 
- Java并发编程艺术读书笔记
		1.多线程在CPU切换过程中,由于需要保存线程之前状态和加载新线程状态,成为上下文切换,上下文切换会造成消耗系统内存.所以,可合理控制线程数量. 如何控制: (1)使用ps -ef|grep appn ... 
- [Java 并发] Java并发编程实践 思维导图 - 第一章 简单介绍
		阅读<Java并发编程实践>一书后整理的思维导图. 
随机推荐
- css心得体会
			非块级元素 要使得其有长宽的效果 可以设置 margin 和 padding 块级元素 可以直接设置 width 和 height div标签 要使得你内部元素居中 可 ... 
- python的介绍和及基本的使用
			一 什么是计算机 1 计算机就是由一堆硬件组成的一个机器. 2 硬件的分类: CPU:犹如人类的大脑,运行着需要运行的程序. 内存:将 CPU要运行的内容从硬盘中读取出来,然后CPU在内存里拿内容,只 ... 
- 2018.10.23 NOIP模拟 行星通道计划(bit)
			传送门 卡常题. 成功卡掉了作死写树套树的zxy. 然而对我的二维bit无能为力. 直接维护两棵bit. bit1[i][j]bit1[i][j]bit1[i][j]表示左端点小于等于iii,右端点小 ... 
- 40 Older People Needed Less Sleep ?老年人要睡得少 ?
			Older People Needed Less Sleep ?老年人要睡得少 ? ①The popular notion that older people need less sleep than ... 
- Tomcat & SVN
			1. Tomcat简介 tomcat是一个web服务器,类似nginx,apache的http nginx,http只能处理html等静态文件(jpg) 网页分为静态网页(以.html或者.htm结尾 ... 
- js获取年月日时分秒星期
			<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ... 
- ArcGIS根据最大最小坐标换算瓦片行列号
			1.前言 在上一节中我们知道了屏幕上一像素等于实际中多少单位长度(米或经纬度)的换算方法,而知道这个原理后,接下来我们要怎么用它呢?它和我们前端显示地图有什么关联呢?这一节,我会尽量详细的将这两个问题 ... 
- Google Maps 基础
			创建一个简单的 Google 地图 现在让我们创建一个简单的 Google 地图. 以下是显示了英国伦敦的 Google 地图: <!DOCTYPE html> <html> ... 
- Android+PHP开发最佳实践
			本书以一个完整的微博应用项目实例为主线,由浅入深地讲解了Android客户端开发和PHP服务端开发的思路和技巧.从前期的产品设计.架构设计,到客户端和服务器的编码实现,再到性能测试和系统优化,以及最后 ... 
- oracle数据库查询日期sql语句(范例)、向已经建好的表格中添加一列属性并向该列添加数值、删除某一列的数据(一整列)
			先列上我的数据库表格: c_date(Date格式) date_type(String格式) 2011-01-01 0 2012-03-07 ... 
