Java 程序演示非懒惰初始化线程安全

2024 年 9 月 10 日 | 阅读 3 分钟

在 Java 中,线程是独立的执行单元,可以并发运行,从而通过利用多个 CPU 核心来提高处理速度。Java 中的线程安全是指程序或代码能够正确处理和执行,而不受创建和并发执行的线程数量的影响的特性。

当我们说一个程序是线程安全的时,意味着即使多个线程并发访问和修改共享资源,程序的输出或行为仍然是一致且符合预期的。当多个线程访问和操作相同的数据或资源时,这一点尤为重要。

单例设计模式是演示线程安全需求的一个常见示例。在单例模式中,我们希望确保在整个程序执行过程中只有一个类的实例。任何在第一次创建实例后尝试创建新实例的操作都应该返回现有实例的引用。

使单例类成为线程安全可以确保即使多个线程同时尝试创建实例,也只会创建一个实例。它可以防止数据不一致、竞态条件以及如果允许创建多个单例类实例可能发生的意外行为。

文件名: CarManufacturing.java

输出

Thread 1: Vehicle ID - Vehicle@7f5460e1
Thread 2: Vehicle ID - Vehicle@7f5460e1
Thread 3: Vehicle ID - Vehicle@7f5460e1

解释: 线程 1 创建了一个 Vehicle 类的新实例。线程 2 调用 getInstance() 方法并获取了线程 1 创建的同一个 Vehicle 类实例。线程 3 调用 getInstance() 方法并获取了线程 1 创建的同一个 Vehicle 类实例。所有三个线程都打印了 Vehicle 类的 ID。ID 是 0,因为所有三个线程都获取了相同的类实例。