news 2026/4/23 12:35:51

Java 线程知识点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java 线程知识点

Java线程是Java并发编程的核心,内容非常丰富且重要。这里为你梳理一个系统性的知识图谱和关键点详解,无论是面试还是日常开发都很有用。

---

一、Java线程的创建与管理

1. 创建线程的三种核心方式

· 继承 Thread 类

```java

class MyThread extends Thread {

@Override

public void run() {

// 线程执行体

}

}

// 启动:new MyThread().start();

```

· 缺点:Java是单继承,限制了扩展性。

· 实现 Runnable 接口(最推荐)

```java

class MyRunnable implements Runnable {

@Override

public void run() {

// 线程执行体

}

}

// 启动:new Thread(new MyRunnable()).start();

```

· 优点:任务与线程分离,可以复用 Runnable 对象,更灵活。

· 实现 Callable 接口(带返回值)

```java

class MyCallable implements Callable<String> {

@Override

public String call() throws Exception {

// 线程执行体

return "结果";

}

}

// 配合线程池或FutureTask使用

```

· 与 Runnable 的关键区别:call() 方法有返回值,可以抛出受检异常。

· 通常与 ExecutorService、Future/FutureTask 结合使用。

2. 线程的生命周期(状态)

通过 Thread.getState() 获取,对应 Thread.State 枚举:

1. NEW: 已创建但未启动 (start() 未调用)。

2. RUNNABLE: JVM中正在执行或等待操作系统资源(如CPU)。对应操作系统层面的 Ready 和 Running 状态。

3. BLOCKED: 等待监视器锁(synchronized) 进入同步块/方法。(仅针对synchronized)

4. WAITING: 无限期等待,直到被其他线程显式唤醒。调用以下方法会进入此状态:

· Object.wait() (需先获得锁)

· Thread.join() (等待目标线程终止)

· LockSupport.park()

5. TIMED_WAITING: 带超时时间的等待。如 Thread.sleep(long)、Object.wait(long)、Thread.join(long)。

6. TERMINATED: 线程执行完毕。

重要区别:BLOCKED vs WAITING/TIMED_WAITING

· BLOCKED 是因为锁竞争,是被动的。

· WAITING 是线程主动调用方法进入的等待。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:34:35

直播间数据抓取终极方案:Live Room Watcher深度解析与实践指南

在直播电商和内容创作蓬勃发展的今天&#xff0c;如何精准获取直播间实时数据成为众多开发者和运营者面临的核心挑战。本文将为您完整解析一款功能强大的开源工具——Live Room Watcher&#xff0c;助您轻松应对多平台直播间数据监控需求。 【免费下载链接】live-room-watcher …

作者头像 李华
网站建设 2026/4/18 7:05:56

终极QQ截图独立版:完整屏幕捕捉解决方案

终极QQ截图独立版&#xff1a;完整屏幕捕捉解决方案 【免费下载链接】QQScreenShot 电脑QQ截图工具提取版,支持文字提取、图片识别、截长图、qq录屏。默认截图文件名为ScreenShot日期 项目地址: https://gitcode.com/gh_mirrors/qq/QQScreenShot 还在为繁琐的截图操作而…

作者头像 李华
网站建设 2026/4/23 5:20:26

Docker容器资源回收黑科技(Offload释放效率提升90%)

第一章&#xff1a;Docker容器资源回收黑科技概述 在高密度容器化部署环境中&#xff0c;资源的高效回收与再利用是保障系统稳定性和性能的关键。Docker虽然提供了基础的资源隔离与限制机制&#xff0c;但在复杂场景下&#xff0c;仍需借助“黑科技”手段实现精细化的内存、CPU…

作者头像 李华
网站建设 2026/4/23 11:14:40

为什么你的Cirq补全总出错?3分钟搞懂核心语法规则

第一章&#xff1a;Cirq 代码补全的语法规则概述Cirq 是由 Google 开发的用于编写、模拟和运行量子电路的 Python 框架。在使用 Cirq 进行开发时&#xff0c;代码补全功能能够显著提升编码效率。该功能依赖于清晰的语法规则与类型提示机制&#xff0c;使 IDE 能够准确推断变量类…

作者头像 李华
网站建设 2026/4/12 9:58:21

svg2gcode:从数字设计到物理制造的智能转换桥梁

svg2gcode&#xff1a;从数字设计到物理制造的智能转换桥梁 【免费下载链接】svg2gcode Convert vector graphics to g-code for pen plotters, laser engravers, and other CNC machines 项目地址: https://gitcode.com/gh_mirrors/sv/svg2gcode 在创意设计与物理制造的…

作者头像 李华
网站建设 2026/4/23 12:12:04

水质监测“保真”首选:万维盈创户外智能水质采样站

在水环境监测愈发精准化、智能化的今天&#xff0c;户外智能水质采样站作为数据真实性的“源头防线”&#xff0c;其设备选型直接决定了监测工作的质量与效率。今天就聊一聊万维盈创在水环境监测领域的影响力。深耕廿载铸标杆&#xff1a;品牌实力奠定信赖根基在众多品牌中&…

作者头像 李华