目录
本文摘自java并发编程的艺术(本文摘出来用于本人学习)
在
Java
中,使用
线
程来异步
执
行任
务
。
Java
线
程的
创
建与
销
毁
需要一定的开
销
,如果我
们
为
每一个任
务创
建一个新
线
程来
执
行,
这
些
线
程的
创
建与
销
毁
将消耗大量的
计
算
资
源。同
时
,
为
每一个任
务创
建一个新
线
程来
执
行,
这
种策略可能会使
处
于高
负
荷状
态
的
应
用最
终
崩
溃
。
Java的线程既是工作单元,也是执行机制。
从
JDK 5
开始,把工作
单
元与
执
行机制分离开
来。工作
单
元包括
Runnable
和
Callable
,而
执行机制由Executor框架提供
Executor框架简介
在
HotSpot VM
的
线程模型中,
Java
线
程(
java.lang.Thread
)被一
对
一映射
为
本地操作系
统线
程。
Java
线
程启
动时
会
创
建一个本地操作系
统线
程;当
该
Java
线
程
终
止
时
,
这
个操作系
统线
程
也会被回收。操作系
统
会
调
度所有
线
程并将它
们
分配
给
可用的
CPU
。
在上
层
,
Java
多线程程序通常把应用分解为若干个任务
,然后使用用
户级的调度器
(Executor框架)将这些任务映射为固定数量的线
程;在底
层,操作系统内核将这些线程映射到
硬件处理器上
Executor框架的结构
Executor框架主要由3大部分组成如下。
-
· 任 务 。包括被 执 行任 务 需要