当前位置: 首页 > news >正文

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 是线程主动调用方法进入的等待。

http://www.zskr.cn/news/116173.html

相关文章:

  • MySQL终端常用命令
  • SpringBoot集成Spring Statemachine(状态机)实战教程
  • 如何用3步实现企业Agent的Docker权限最小化?运维必看
  • 金仓数据库:不止于兼容,以智能部署、字段级安全与代码级洞察重塑企业级数据库体验
  • 【Q#量子编程效率革命】:揭秘VSCode重构工具的5大核心技巧
  • 选专业、转行为什么推荐学网络安全?看完这篇你就知道了!
  • Utilizing 英文单词学习
  • 揭秘VSCode与量子硬件连接失败原因:90%开发者忽略的3个关键点
  • VSCode日志分析实战(量子算法性能瓶颈的4个信号)
  • ModEngine2游戏模组开发:从零开始的5步实战指南
  • Meta Llama模型访问权限申请与使用指南
  • VSCode + Q#开发环境搭建(量子计算依赖项完整清单)
  • 前端 + AI 学习记录(Day 41–50):工作流 / 多 Agent / 知识中心
  • Git 使用与提交规范
  • 告别拥挤行号!Monaco Editor完美显示长代码文件的秘诀 [特殊字符]
  • MegSpot:颠覆传统的图片视频对比神器,让视觉对比变得如此简单
  • 选对源头省一半!2025年优质管材生产厂家推荐榜,热门的管材中亿百年发展迅速,实力雄厚 - 品牌推荐师
  • 2025年软考高项十大培训机构权威盘点:口碑、师资、价格全对比 - 博客万
  • VSCode Azure QDK 调试失败?(90%开发者都忽略的配置细节)
  • 5分钟搞定神经网络可视化:PlotNeuralNet终极使用指南
  • 外汇Tick数据免费下载:开发者必备指南
  • ffmpeg-python智能视频质量优化实战指南
  • 企业级容器安全防线构建:Docker Scout集成测试的7个核心技巧
  • 12、Linux网络配置与安全优化指南
  • 实施CRM系统前,中小企业需要做好哪些内部准备以确保成功?
  • VSCode中Qiskit代码补全失效?5步精准排查并彻底解决
  • 3步彻底优化风扇控制:滞后效应深度调校指南
  • 【Agent异常无从下手?】:基于Docker日志的7种典型故障模式解析
  • Nginx访问限制实验
  • Cap录屏工具完整指南:从零开始掌握开源屏幕录制