JAVA并发编程学习笔记03-线程状态

博客介绍了操作系统和Java层面的线程状态。操作系统层面有初始、可运行、运行、阻塞和终止状态;Java层面在Thread类的State枚举中定义了6种状态。还阐述了两者状态的区别和联系,如初始对应Java的NEW状态等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作系统层面

操作系统线程五种状态

1.初始状态:线程创建但未运行
2.可运行状态:处于可以运行的状态,但未获取到时间片,一但系统分配时间片,就会转换为运行状态
3.运行状态:处于正在运行的状态
4.阻塞状态:调用了阻塞API,如处于IO操作等,系统会自动让其进入阻塞状态,不会进行时间片竞争,直到被唤醒,然后变为可运行状态
5.终止状态:程序运行结束

JAVA层面

定义在Thread类的State枚举中,分为如下6种。
JAVA6种线程状态

1.NEW:线程创建了,但未调用start()方法
2.RUNNABLE:线程被调用start()方法,切正则执行run方法的内容。
3.BLOCKED:线程处于等待锁资源释放的阶段
4.WAITING:线程调用无期限的等待方法,如join()、wait()方法
5.TIMED_WAITING:系统调用有期限的等待方法,如sleep(long millis)、wait(long timeout)
6.TERMINATED:线程运行结束

区别和联系

1.初始状态对应JAVA的NEW状态
2.JAVA的RUNNABEL状态包含线程的可运行状态和运行状态以及部分阻塞状态,如IO操作
3.剩余的阻塞状态等同于JAVA的BLOCK + WAITING + TIMED_WAITING
4.终止状态等同于JAVA的TERMINATED状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值