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 关键字

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

相关推荐
mldong4 小时前
引擎从不发一条消息:jeeflow 的两类扩展点与消息模块的分工
java·架构
君顾14 小时前
智慧零售实战指南:从技术架构到落地方案全解析
java·开发语言·零售
zhanghe6875 小时前
es的密码带有特殊字符,导出
java
pnoker5 小时前
IoT DC3 概念解读:把设备抽象成一套语义模板——位号、指令、事件与面向智能体的设备建模
java·人工智能·物联网·iot·dc3
my_realmy5 小时前
Java SE 基础学习笔记(一):面向对象、继承多态、抽象接口与异常(JDK 8)
java·多线程·并发··生产者消费者模式
天远数科6 小时前
风险治理实战:基于天远车信盟出险构建自动化理赔核保流水线
java·网络·人工智能·自动化
骇客野人6 小时前
SpringBoot电商系统用户注册、登录、留存及数据埋点设计与落地实施方案
java·spring boot·后端
qiuhaipeng16 小时前
Claude code 升级后上下文长度变短问题
java·前端·数据库
wxwx_bscxy3227 小时前
基于Python新冠疫情可视化分析系统的设计与实现
java·数据库·spring boot·python·微信小程序·sqlite
evans在进步8 小时前
Tomcat NIO 工作原理详解:从 Acceptor、Poller 到容器处理链
java·tomcat·nio