java线程知识点介绍1

  1. 线程的基本概念

◦ 线程是进程内的轻量级执行单元,一个进程可包含多个线程,线程共享进程的内存空间、文件句柄等资源,同时拥有独立的程序计数器、虚拟机栈和本地方法栈。

◦ 进程是资源分配的基本单位,线程是CPU调度的基本单位。

  1. 线程的创建方式

◦ 继承Thread类:自定义类继承Thread,重写run()方法定义执行逻辑,通过start()方法启动线程。

◦ 实现Runnable接口:自定义类实现Runnable接口并重写run(),将实例传入Thread构造器,调用Thread的start()启动,该方式可避免单继承限制,便于共享资源。

◦ 实现Callable接口:通过Callable定义有返回值、可抛异常的任务,结合FutureTask获取执行结果,支持异步获取任务返回值。

  1. 线程的生命周期

◦ Java线程有6种状态(Thread.State枚举):新建(NEW)(线程对象已创建但未启动)、就绪(RUNNABLE)(调用start()后等待CPU调度)、运行(RUNNING)(获取CPU执行权执行run())、阻塞(BLOCKED)(等待获取锁资源)、等待(WAITING)(无时限等待被唤醒,如wait()、join())、超时等待(TIMED_WAITING)(有时限等待,如sleep(long)、wait(long))、终止(TERMINATED)(线程执行完毕或异常终止)。

  1. 线程的核心方法

◦ 启动与执行:start()(启动线程,触发JVM调用run())、run()(定义线程执行逻辑,直接调用为普通方法)。

◦ 线程等待:join()(当前线程等待目标线程执行完毕)、sleep(long)(线程休眠指定时间,不释放锁)、wait()(线程进入等待状态,需配合锁使用,会释放锁,需notify()/notifyAll()唤醒)。

◦ 中断相关:interrupt()(标记线程中断状态)、isInterrupted()(判断目标线程是否中断,不清除标志)、interrupted()(判断当前线程是否中断,且清除中断标志)。

◦ 线程状态控制:yield()(线程主动让出CPU执行权,回到就绪状态)。

相关推荐
小大宇19 分钟前
python flask框架 SSE流式返回、跨域、报错
开发语言·python·flask
青山木1 小时前
Hot 100 --- 岛屿数量
java·数据结构·算法·leetcode·深度优先·广度优先
柒星栈1 小时前
PHP 源码怎么加密防破解?三套方案实战指南
开发语言·php·android studio
勉灬之1 小时前
Next.js + Prisma 跨平台部署踩坑记
开发语言·javascript·ecmascript
程序员-珍1 小时前
报错下载android sdk失败
android·java
糖果店的幽灵1 小时前
langgraph分支之 - 动态分支(Dynamic Branch)
java·前端·javascript·人工智能·langgraph
吃饱了得干活1 小时前
亿级订单表分库分表设计,从0到1全流程
java·数据库·面试
这是个栗子1 小时前
前端开发中的常用工具函数(九)
开发语言·javascript·ecmascript·at
蓝创工坊Blue Foundry2 小时前
图片文字提取到 Excel:批量任务如何先定义要交付的字段
运维·服务器·开发语言·数据库·自动化·ocr·excel
会飞的小新2 小时前
C 标准库之 <fenv.h> 详解与深度解析
c语言·开发语言·microsoft