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执行权,回到就绪状态)。

相关推荐
Chester_19996 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
EXI-小洲7 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
会周易的程序员8 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm
机器视觉知识推荐、就业指导8 小时前
为什么老说“纯 Qt 没啥就业市场”?
开发语言·qt
telepan8 小时前
Qt 开发避坑与性能指南:如何优雅、安全地定义全局常量字符串?
开发语言·qt
m0_695251498 小时前
Qt MaintenanceTool 使用国内镜像加速下载(超详细教程)
开发语言·qt
2601_961901708 小时前
SpringBoot使用Nacos进行application.yml配置管理
java·spring boot·spring
何以解忧,唯有..9 小时前
LangChain 工具调用(Tool Calling)实战指南
java·前端·langchain
大衛說9 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
QQ_216962909610 小时前
【源码编号:project79475】SpringBoot校内二手交易平台:商品发布、分类检索、留言交流、订单管理全流程实战
java·spring boot·后端