Java编程思想 - 第二十一章、并发

| 分类 Java  | 标签 Java编程思想 

首先我们来看下目录结构:

  • 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 进阶读物

上面就是这一章的所有内容,其实这一章的内容很枯燥。如果想真正看懂,是要花费很大精力的。所以开始看了,就一定要坚持。我记得当时看了大概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小节:活动对象是啥?这个比较模糊,到了再去说

这么一总结,并发这一章的安排是非常合理的。那么,我们在做笔记的时候,也要把知识穿起来,这样才能更容易融会贯通:)

###章节索引


上一篇     下一篇