news 2026/6/3 10:04:53

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/6/3 2:21:25

Docker Scout忽略规则配置完全手册,从入门到精通一键掌握

第一章&#xff1a;Docker Scout忽略规则配置概述Docker Scout 是 Docker 官方提供的安全分析工具&#xff0c;用于识别镜像中的已知漏洞、软件包风险和配置问题。在实际开发与部署过程中&#xff0c;某些安全告警可能因环境特殊性或业务兼容性原因需要被有选择地忽略。为此&am…

作者头像 李华
网站建设 2026/6/2 14:03:08

Docker Offload任务调度进阶:从基础分配到智能预测的4个关键步骤

第一章&#xff1a;Docker Offload任务调度的核心概念在现代分布式计算环境中&#xff0c;Docker Offload任务调度是一种将容器化工作负载从主节点卸载到边缘或辅助节点执行的机制。其核心目标是优化资源利用率、降低主节点负载&#xff0c;并提升整体系统的可扩展性与响应速度…

作者头像 李华
网站建设 2026/6/3 10:35:18

【量子开发环境搭建】:如何在VSCode中100%成功配置并验证Qiskit?

第一章&#xff1a;量子开发环境搭建的核心意义 在进入量子计算的实际开发之前&#xff0c;构建一个稳定、高效的量子开发环境是不可或缺的第一步。这不仅是运行量子算法的基础平台&#xff0c;更是连接理论研究与工程实践的桥梁。一个完善的开发环境能够支持量子电路的设计、模…

作者头像 李华
网站建设 2026/6/2 12:20:55

40、Linux 软件安装与使用基础指南

Linux 软件安装与使用基础指南 1. 软件安装方式 1.1 从 tarball 安装 每个软件包在创建和安装组件的方式上可能略有不同。建议将解压后的 tar 归档文件复制到一个目录,然后进入该目录,查找 INSTALL 或 README 文件以获取具体的操作说明。 以下是以 root 用户身份在终…

作者头像 李华
网站建设 2026/6/1 2:04:03

揭秘VSCode远程调试中的环境变量陷阱:99%开发者忽略的细节

第一章&#xff1a;揭秘VSCode远程调试中的环境变量陷阱在使用 VSCode 进行远程开发或调试时&#xff0c;环境变量的配置常成为开发者忽略却影响重大的环节。当本地与远程环境存在差异&#xff0c;未正确传递或设置环境变量&#xff0c;可能导致应用启动失败、认证错误或配置缺…

作者头像 李华
网站建设 2026/6/1 10:02:50

破解异地用工难题:终成国际一站式人事外包服务

还在为异地员工社保缴纳、各地政策不一而头痛吗&#xff1f;管理成本居高不下&#xff0c;合规风险如影随形&#xff1f;终成国际人事服务外包&#xff0c;是您破解这些难题的“金钥匙”。 我们成立于2010年&#xff0c;深耕人力资源服务领域16年&#xff0c;服务网络覆盖全国…

作者头像 李华