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

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

相关推荐
java1234_小锋5 分钟前
Java高频面试题:Springboot的自动配置原理?
java·spring boot·面试
末央&1 小时前
【天机论坛】项目环境搭建和数据库设计
java·数据库
枫叶落雨2221 小时前
ShardingSphere 介绍
java
花花鱼1 小时前
Spring Security 与 Spring MVC
java·spring·mvc
言慢行善2 小时前
sqlserver模糊查询问题
java·数据库·sqlserver
专吃海绵宝宝菠萝屋的派大星2 小时前
使用Dify对接自己开发的mcp
java·服务器·前端
大数据新鸟2 小时前
操作系统之虚拟内存
java·服务器·网络
Tong Z2 小时前
常见的限流算法和实现原理
java·开发语言
凭君语未可2 小时前
Java 中的实现类是什么
java·开发语言
He少年2 小时前
【基础知识、Skill、Rules和MCP案例介绍】
java·前端·python