Java并发 - 摘要
2012-08-15
首先我们来看下目录结构:
- 21.1 并发的多面性
- 21.1.1 更快的执行
- 21.1.2 改进代码设计
- 21.2 基本的线程机制
- 21.2.1 定义任务
- 21.2.2 Thread 类
- 21.2.3 使用 Executor
- 21.2.4 从任务中产生返回值
- 21.2.5 休眠
- 21.2.6 优先级
- 21.2.7 让步
- 21.2.8 后台线程
- 21.2.9 编码的变体
- 21.2.10 术语
- 21.2.11 加入一个线程
- 21.2.12 创建有响应的用户界面
- 21.2.13 线程组
- 21.2.14 捕获异常
- 21.3 共享受限资源
- 21.3.1 不正确地访问资源
- 21.3.2 解决共享资源竞争
- 21.3.3 原子性与易变性
- 21.3.4 原子类
- 21.3.5 临界区
- 21.3.6 在其他对象上同步
- 21.3.7 线程本地存储
- 21.4 终结任务
- 21.4.1 装饰性花园
- 21.4.2 在阻塞时终结
- 21.4.3 中断
- 21.4.4 检查中断
- 21.5 线程之间的协作
- 21.5.1 wait()与 notifyAll()
- 21.5.2 notify()与 notifyAll()
- 21.5.3 生产者与消费者
- 21.5.4 生产者-消费者队列
- 21.5.5 任务间使用管道进行输入/输出
- 21.6 死锁
- 21.7 新类库中的构件
- 21.7.1 CountDownLatch
- 21.7.2 CyclicBarrier
- 21.7.3 DelayQueue
- 21.7.4 PriorityBlockingQueue
- 21.7.5 使用 ScheduledExecutor 的温室控制器
- 21.7.6 Semaphore
- 21.7.7 Exchanger
- 21.8 仿真
- 21.8.1 银行出纳员仿真
- 21.8.2 饭店仿真
- 21.8.3 分发工作
- 21.9 性能调优
- 21.9.1 比较各类互斥技术
- 21.9.2 免锁容器
- 21.9.3 乐观加锁
- 21.9.4 ReadWriteLock
- 21.10 活动对象
- 21.11 总结
- 21.11.1 进阶读物
上面就是这一章的所有内容,其实这一章的内容很枯燥。如果想真正看懂,是要花费很大精力的。
前言
从上面的目录中我们就能得到一些很重要的信息,如果仔细观察,这一章的组织是非常合理的:
- 21.1小节:为什么要引入并发?遇到了什么问题?
- 21.2小节:最最最基础的线程使用方法介绍
- 21.3小节:基础(每个线程都是完全独立)介绍过了,现在要考虑一下:如果每个线程使用的资源是不独立而是共享的,怎么办?
- 21.4小节:线程的逻辑搞定了,如何优雅的关闭线程?
- 21.5小节:现在,单独线程如何工作(独享资源、共享资源)说过了,那么多个线程之间如何协作?
- 21.6小节:协作之必备话题——打架(线程死锁)
- 21.7小节:好了,知识点全部介绍过了。在 java.util.concurrent 中有哪些宝贝(很明显,concurrent 包就是高效使用并发编程的绝佳例子,后续必然看看看)
- 21.8小节:好了,知识点 + 好用的类库都介绍了,开始动手实践吧
- 21.9小节:在实践中体验多线程编程,反思-优化-调试 loop…
- 21.10小节:活动对象是啥?这个比较模糊,到了再去说
这么一总结,并发这一章的安排是非常合理的。
章节索引
Java并发系列的汇总:
- 21.1 并发的多面性 + 21.2 基本的线程机制
- 21.3 共享受限资源
- 21.4 终结任务
- 21.5 线程之间的协作
- 21.6 死锁
- 21.7 新类库中的构件
- 21.8 仿真
- 21.9 性能调优
- 21.10 活动对象
- 21.11 总结
参考来源
- Java编程思想 第二十一章
原文地址:https://ningg.top/java-concurrency-1/