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

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

相关推荐
Jul1en_几秒前
【SpringCloud】微服务 Sentinel 详解
java·spring·sentinel
闪电悠米8 分钟前
黑马点评短信登录01_session_sms_login
java·spring boot·redis·git·spring·面试
Advancer-9 分钟前
黑马点评plus --异步秒杀重构升级
java·spring boot·重构·intellij-idea
Dicky-_-zhang13 分钟前
服务网格实战:Istio与Linkerd对比选型与落地实践
java·jvm
云烟成雨TD15 分钟前
Spring AI Alibaba 1.x 系列【56】SAA Admin 平台功能介绍
java·人工智能·spring
Gauss松鼠会15 分钟前
GaussDB(DWS) 资源监控Topsql
java·网络·数据库·算法·oracle·性能优化·gaussdb
夏日听雨眠16 分钟前
数据结构(快速排序)
java·数据结构·算法
字节高级特工19 分钟前
C++11(一) 革新:右值引用与移动语义
java·开发语言·c++·人工智能·后端
郝学胜-神的一滴20 分钟前
系统设计 012:从用户系统出发,吃透缓存、数据库与高并发设计
java·数据库·python·缓存·php·软件构建
人道领域24 分钟前
【LeetCode刷题日记】654.最大二叉树:递归算法详解
java·算法·leetcode