65节82节,我们用了18篇文章讨论并发,本节进行简要总结。

多线程开发有两个核心问题,一个是竞争,另一个是协作。竞争会出现线程安全问题,所以,本节首先总结线程安全的机制,然后是协作的机制。管理竞争和协作是复杂的,所以Java提供了更高层次的服务,比如并发容器类和异步任务执行服务,我们也会进行总结。本节纲要如下:

  • 线程安全的机制

  • 线程的协作机制

  • 容器类

  • 任务执行服务

线程安全的机制

线程表示一条单独的执行流,每个线程有自己的执行计数器,有自己的栈,但可以共享内存,共享内存是实现线程协作的基础,但共享内存有两个问题,竞态条件和内存可见性,之前章节探讨了解决这些问题的多种思路:

  • 使用synchronized

  • 使用显式锁

  • 使用volatile

  • 使用原子变量和CAS

  • 写时复制

  • 使用ThreadLocal

网友评论