《Java核心技术卷1:基础知识》CH14-并发

文章目录

  • 14.1 什么是线程
    • 14.1.1 使用线程给其他任务提供机会
  • 14.2 中断线程
  • 14.3 线程状态
    • 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 单一线程规则


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 单一线程规则

你可能感兴趣的:(Java)