Multithreading Hierarchy in Java

2025年3月27日 | 阅读 3 分钟

Java 的多线程功能是一项有效工具,它通过允许多个线程同时运行来提高程序性能和资源经济性。线程层级的概念是 Java 线程范例的基础,它提供了管理并发工作的有序方法。本节探讨Java 的多线程层级,强调其基本要素、线程交互和执行控制。

Thread 类和 Runnable 接口

Java 应用程序的执行线程由 Thread 类表示。Runnable 接口定义了线程要执行的活动。

  1. Thread 类: Thread 类包含构造和维护线程所需的所有功能。它提供了启动、停止、重启和暂停线程的命令。你可以通过实现 Runnable 接口或通过扩展 Thread 类来构建线程。
  2. Runnable 接口: 线程可以执行的任务由 Runnable 接口表示。由于 Java 不提供多重继承,扩展 Thread 会限制扩展其他类的能力;因此,建议使用 Runnable。或者,你可以通过使用 Runnable 来获得更大的灵活性。

以下代码演示了线程如何在不同状态之间移动

文件名:Multithreading.java

输出

 
Thread state before start: NEW
Thread state after start: RUNNABLE
Thread state while sleeping: TIMED_WAITING
Thread is awake and running
Thread state after completion: TERMINATED  

线程优先级和守护线程

Java 线程具有优先级,它允许线程调度程序决定首先执行哪些线程。优先级的默认设置为 NORM_PRIORITY (5)。优先级的范围是从 MIN_PRIORITY (1) 到 MAX_PRIORITY (10)。

虽然 操作系统JVM 的实现会影响每个线程获得的 CPU 时间,但线程调度程序使用这些优先级来确定每个线程获得的时间。

另一方面,守护线程是低优先级的后台线程,它们有助于用户线程。当所有非守护线程都执行完毕后,JVM 会终止一个守护线程。例如,垃圾回收和后台服务。你可以使用 setDaemon(true) 函数将一个线程设为守护线程。

多线程中的同步

当多个线程尝试同时访问共享资源时,可能会发生数据不一致。为了确保一次只有一个线程可以访问代码的关键部分,Java 提供了同步机制。

同步方法: 它确保一次只有一个线程可以执行一个方法。它可以声明为 synchronized。它会阻止同一对象的同步方法被不同线程执行,直到锁被释放。

文件名:Synchronized.java

输出

 
Final count: 2000   

2. 同步块: 通过仅锁定代码的关键部分,同步代码块而不是整个方法可以提高性能。

结论

总之,Java 的多线程层级由 Thread 类、Runnable 接口以及用于管理 线程同步、优先级和执行的各种技术组成。


下一个主题Map 与 HashMap