当前位置:网站首页>线程有哪些状态?
线程有哪些状态?
2022-06-12 06:01:00 【z啵唧啵唧】
线程的状态在Java层面和操作系统的层面略有不同,下面从Java和操作系统两个层面来看
Java线程分为六种状态
- NEW 新建状态
处在新建状态的线程还没有和操作系统底层的线程关联起来,只能说是一个刚刚new出来的对象
- RUNNABLE 可运行状态
可运行状态就是说是新建状态的线程调用了start方法之后,就进入了这个可运行状态,可运行状态的线程才和操作系统底层的线程进行关联
- TERMINATED 终止状态
当该线程执行的代码执行完毕之后,就进入这个终结状态
- BLOCKED 阻塞状态
阻塞状态就是说多个线程共同访问一个共享资源的时候,是通过获取锁来获取访问资源的权力的,当获取锁失败之后就会进入到这个阻塞状态,当然处在阻塞状态的线程还是可以争抢锁的,当它获取到锁的时候就从阻塞状态转变为可运行的状态
- WAITING 等待状态
等待状态是这样的,当线程获取锁成功之后,但是因为一些原因不能够继续执行,就会通过调用wait方法然后就进入到这个等待的状态,处在等待状态的线程,调用notify方法的时候就从这个等待状态回到可运行的状态
- TIMED_WAITING 有时限的等待状态
有时限的等待状态和等待状态原理类似,只不过就是添加了一个等待的实现,原先普通的等待状态只有在调用了notify方法之后才会重回到可运行的状态,但是有时限的等待状态,在时间到了之后还没有被唤醒也会自动唤醒重回到可运行的状态
进入有时限的等待状态可以调用带参的wait(long)方法,并且还可以调用sleep(long)方法
- Java层面线程状态转换图

操作系统层面分为五个状态
- 操作系统层面将Java层面的可运行状态拆分成为两个状态,一个是就绪状态,一个是运行状态
- 将Java中的阻塞,等待,有时限等待统一称为阻塞状态
- 新建状态
线程刚被创建出来,还不具备分配到CPU时间片的能力
- 就绪状态
新建状态的线程调用start方法后,线程进入的状态,此时线程具备抢夺cpu时间片的能力
- 运行状态
当线程分配到cpu时间片的时候,就进入运行状态,执行相关的代码
- 阻塞状态
线程在执行的过程遇到一些阻塞时间进入的状态
- 终止状态
线程任务执行完毕就会进入这个终结状态
- 操作系统层面线程状态转换图

边栏推荐
- Leetcode-93. Restore IP address
- MySQL 主从,6 分钟带你掌握
- Directx11 advanced tutorial tiled based deffered shading
- C WMI query remote Win32_ Operatingsystem class
- Why is the union index the leftmost matching principle?
- 前台展示LED数字(计算器上数字类型)
- Unity vscode cannot jump to definition
- Findasync and include LINQ statements - findasync and include LINQ statements
- March 4, 2021
- Review notes of naturallanguageprocessing based on deep learning
猜你喜欢

Login authentication filter

Introduction to thread pool: ThreadPoolExecutor
![[long time series prediction] the [4] autocorrelation mechanism of aotoformer code explanation](/img/12/27531fc791b3f49306385831309c5e.png)
[long time series prediction] the [4] autocorrelation mechanism of aotoformer code explanation

IDEA常用配置

MySQL master-slave, 6 minutes to master

三年磨一剑:蚂蚁金服的研发效能洞察实践

Halcon 3D 1 Reading 3D data

Introduction to sringmvc

Filter的注解配置

Lock and reentrankload
随机推荐
Individual application for ov type SSL certificate
姿态估计之2D人体姿态估计 - PifPaf:Composite Fields for Human Pose Estimation
Error the main class com xxx. yyy. Application
Market trend report, technical innovation and market forecast of Chinese stump crusher
nus_data_handler源码解读结构体等数据类型
March 22, 2021
数据库实验三:数据查询
Leetcode sword finger offer II 033 Modified phrase
Multiple ways 99.9% to solve the problem of garbled code after copying text from PDF
[C language basics] macro definition usage
数据集成框架SeaTunnel学习笔记
Win10 desktop unlimited refresh
XML parameter schema, the same MTK SW version is compatible with two different sets of audio parameters
Flex/fixed upper, middle and lower (mobile end)
Redis transaction
IDEA常用配置
Lock and reentrankload
Execute sh script to prompt "[[: not found" solution. The difference between Bash and sh
为什么数据库不使用二叉树、红黑树、B树、Hash表? 而是使用了B+树
China's elastic belt market trend report, technical dynamic innovation and market forecast