当前位置: 首页 > 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.cnnetsun.cn/news/105709.html

相关文章:

  • 网络安全专业全方位解析,这个专业能学明白,就业绝对是王者。从零基础入门到高薪就业,收藏这篇就够了!
  • 【量子编程进阶之路】:为什么顶级工程师都在用VSCode运行QML模型?
  • 32、打造家庭与小型办公网络安全防护体系
  • AI智能体:完整课程(初级)
  • 震惊!大模型在AIOps中竟有6大“死穴“!小白程序员避坑必看,从工具到智能要素的蜕变之路!
  • GSE宏编译器:魔兽世界玩家的技能循环自动化神器
  • DeeplxFile:突破文件翻译限制的终极解决方案
  • 针对机械设备行业一体化项目制管理解决方案
  • 别再问资质认证怎么查了!看这家公司如何用“大模型搜索”帮客户7天拿下高新认证
  • 【量子编程数据同步新突破】:如何在Q#和Python间无缝传递变量?
  • Java后端开发常见报错及解决方案:小白与大牛的问答故事
  • DeepSeek-V3实战指南:如何精准调优batch_size解决推理性能瓶颈
  • Docker Offload资源释放难题:5个你必须掌握的优化技巧
  • 全面封禁Cursor!又一家大厂,出手了~
  • 为什么你的量子模型总出错?VSCode调试面板告诉你真相
  • 【稀缺技术揭秘】:资深工程师都在用的Azure量子作业状态诊断流程
  • 免费视频增强神器:字节跳动SeedVR2让老视频秒变4K超清画质
  • VSCode Azure QDK 调试失败?(90%开发者都忽略的配置细节)
  • hsweb-framework Easy-ORM终极指南:企业级数据访问实战手册
  • 8、量子计算与技术发展:从理论根源到实际应用
  • 30、RTA API 详解:功能、使用与错误处理
  • 【量子开发效率提升10倍】:VSCode + Azure QDK标准项目模板深度解读
  • ExoPlayer直播优化终极指南:从卡顿诊断到性能提升的完整解决方案
  • 企微SCRM源码分享:源雀SCRM
  • 手把手带你打通Docker Scout+GitHub Actions集成测试全流程
  • 紧急通知:Azure QDK重大版本变更来袭,你的VSCode准备好了吗?
  • 【Azure CLI量子作业资源统计全攻略】:掌握高效资源监控的5大核心命令
  • Docker中调试Vercel AI SDK的3个隐藏技巧,90%开发者都不知道
  • VSCode + Qiskit 环境配置验证全攻略(从零到运行仅需8分钟)
  • 语雀文档备份完整指南:5分钟学会离线文档制作