JAVA中的多线程

Java 多线程是实现并发编程的核心技术,允许程序同时执行多个独立的任务,提升资源利用率和程序响应速度。

一、创建线程的 3 种核心方式

  1. 继承 Thread 类

继承 Thread 并重写 run() 方法,调用 start() 启动线程(注意:直接调用 run() 只是普通方法执行,不会开启新线程)。

  1. 实现 Runnable 接口

实现 Runnable 接口并重写 run() ,将实例传入 Thread 构造器启动,推荐使用(避免单继承限制,便于资源共享)

  1. 实现 Callable 接口 + FutureTask

适合需要返回执行结果的场景, Callable 的 call() 方法可抛出异常,通过 FutureTask 获取结果二、线程的生命周期

Java 线程有 6 种状态,定义在 Thread.State 枚举中:

NEW:线程已创建但未调用 start()

​RUNNABLE:线程正在执行或等待 CPU 调度

​BLOCKED:线程等待获取对象锁(如进入 synchronized 代码块失败)

​WAITING:无限期等待唤醒(如调用 Object.wait() 、 Thread.join() )

​TIMED_WAITING:限时等待(如 Thread.sleep(ms) 、 Object.wait(ms) )

​ TERMINATED:线程执行完毕

三、线程同步与线程安全

当多个线程共享资源时,会出现线程安全问题,需通过同步机制解决:

  1. synchronized 关键字

可修饰方法或代码块,保证同一时刻只有一个线程执行该代码,依赖对象锁实现。

相关推荐
iPadiPhone8 小时前
破茧成蝶:从底层内核到 Java NIO/AIO 异步架构全解析
java·架构·nio
菜鸟小九8 小时前
hot100(81-90)
java·数据结构·算法
皙然8 小时前
线上问题定位与排查实战:从日志到优化的完整思路
java·jvm
无巧不成书02188 小时前
Java核心技术全景解析:从白皮书到实战踩坑
java·开发语言
Roy_Sashulin8 小时前
基于AI的Java编程平台
java·开发语言·人工智能·sashulin·deepseek
大傻^8 小时前
Spring AI Alibaba 企业级实战:从0到1构建智能客服系统
java·人工智能·后端·spring·springaialibaba
贼爱学习的小黄8 小时前
NC BIP增加按钮
java
短剑重铸之日8 小时前
《ShardingSphere解读》11 解析引擎:SQL 解析流程应该包括哪些核心阶段?(上)
java·后端·spring·shardingsphere·分库分表
Javatutouhouduan9 小时前
Netty进阶指南:基础+中级+高级+架构行业运用+源码分析
java·netty·java面试·网络io·后端开发·java程序员·互联网大厂
编码忘我9 小时前
java开发模式之静态代理、动态代理、CGLIB代理
java