《Java核心技术卷1:基础知识》CH14-并发
14.1 什么是线程
线程是Java知识体系中很重要的一个环节。但是这本书的这一章,讲的比较差。
【进程】:进程是程序在计算机上的一次执行活动,即正在运行中的应用程序,通常称为进程。当你运行一个程序,你就启动了一个进程。每个进程都有自己独立的地址空间(内存空间);每当用户启动一个进程时,操作系统就会为该进程分配一个独立的内存空间,让应用程序在这个独立的内存空间中运行。在 Windows 系统中,win + R 键打开任务管理器,可以看到目前启动的进程数。
【线程】:线程是进程的子集,是一个轻量级的子进程。进程之间是彼此独立的。进程是资源分配的最小单位,线程是CPU调度的最小单位。
14.1.1 使用线程给其他任务提供机会
原书中这一段写的很垃圾。
14.2 中断线程
14.3 线程状态
线程有6种状态:
-
New(新创建) Runnable(可运行) Blocked(被阻塞) Waiting(等待) Timed waiting(计时等待) Terminated(被终止)
14.3.1 新创建线程
14.3.2 可运行线程
14.3.3 被阻塞线程和等待线程
14.3.4 被终止的线程
14.4 线程属性
14.4.1 线程优先级
14.4.2 守护线程
14.4.3 未捕获异常处理器
14.5 同步
在大多数实际的多线程应用中,两个或以上的线程,往往会共享同一数据的存取。如果两个线程都修改了该对象的状态,那么会发生冲突。这种情况被称之为竞争条件。
14.5.1 竞争条件的一个例子
14.5.2 竞争条件详解
14.5.3 锁对象
14.5.4 条件对象
14.5.5 synchronized 关键字
14.5.6 同步阻塞
14.5.7 监视器概念
14.5.8 Volatile 域
14.5.9 final 变量
14.5.10 原子性
14.5.11 死锁
14.5.12 线程局部变量
14.5.13 锁测试与超时
14.5.14 读 / 写锁
14.5.15 为什么弃用stop 和 suspend 方法
14.6 阻塞队列
14.7 线程安全的集合
14.7.1 高效的映射、集和队列
14.7.2 映射条目的原子更新
14.7.3 对并发散列映射的批操作
14.7.4 并发集视图
14.7.5 写数组的拷贝
14.7.6 并行数据算法
14.7.7 较早的线程安全集合
14.8 Callable 与 Future
14.9 执行器
14.9.1 线程池
14.9.2 预定执行
14.9.3 控制任务组
14.9.4 Fork-Join 框架
14.9.5 可完成 Future
14.10 同步器
14.10.1 信号量
14.10.2 倒计时门栓
14.10.3 障栅
14.10.4 交换器
14.10.5 同步队列
14.11 线程与 Swing
14.11.1 运行耗时的任务
14.11.2 使用 Swing 工作线程
14.11.3 单一线程规则
上一篇:
IDEA上Java项目控制台中文乱码