JDK 版本演进中的多线程概念

JDK 1.x:初始阶段

在 JDK 1.x 初始发行版中,提供的多线程相关类非常有限。具体包含以下核心类与接口:

  • java.lang.Thread
  • java.lang.ThreadGroup
  • java.lang.Runnable
  • java.lang.Process
  • java.lang.ThreadDeath

以及一些异常类,例如:

  • java.lang.IllegalMonitorStateException
  • java.lang.IllegalStateException
  • java.lang.IllegalThreadStateException

当时尚未提供丰富的同步集合框架(仅有如 java.util.Hashtable 等基础类)。

JDK 1.2 至 1.4:平稳过渡

JDK 1.2 和 JDK 1.3 在与多线程相关的特性上没有明显变化(如有遗漏,敬请指正)。

JDK 1.4 中,JVM 层面几乎没有变更。虽然可以通过特定调用挂起或恢复多个线程,但并未出现重大的 API 更改。

JDK 1.5:并发包的里程碑

JDK 1.5 是继 JDK 1.x 之后的第一个重要版本,引入了多个并发实用工具。ExecutorSemaphoreMutexBarrierCountDownLatch、并发集合(Concurrent Collections)以及阻塞队列(Blocking Queues)均包含在此版本中。Java 多线程应用领域的最大变革发生在此版本中。

阅读此链接中的全部更改集:Java 5 Concurrency Overview

JDK 1.6:优化与改进

与单纯的 API 升级相比,JDK 1.6 不仅仅是平台修复。因此,JDK 1.6 中也出现了一些新的变化与性能优化。

JDK 1.7:Fork/Join 框架

JDK 1.7 添加了对 ForkJoinPool 的支持,该框架通过实施工作窃取(Work-Stealing)技术来最大化吞吐量。此外,还添加了 Phaser 类。

JDK 1.8:Lambda 与流式并发

JDK 1.8 以 Lambda 表达式而闻名,同时也包含了一些并发特性的更新。在 java.util.concurrent 包中添加了两个新接口和四个新类,例如 CompletableFutureCompletionException

集合框架在 Java 8 中进行了重大修改,基于新添加的流(Stream)工具和 Lambda 表达式引入了聚合操作;这导致几乎所有 Collection 类中都添加了大量方法,并发集合类中也相应增加了很多方法。

说明:本文内容主要涵盖至 JDK 1.8 版本。Java 后续版本(如 JDK 11、17、21 等)在并发编程领域仍有持续更新与改进,请参考官方最新文档以获取时效性信息。