当前位置: 首页 > news >正文

【JAVA】总结Java线程的几种状态

1.线程状态的分类

2.每种线程状态表示的含义

3.线程之间的切换条件

线程的状态有:

1.NEW :表示Thread对象已经创建,但内核pcb还没有创建

2.TERMINATED:内核pcb已经销毁,但Thread对象还存在

//就绪

3.RUNNABLE:就绪状态,代表正在pcb上运行+在就绪队列中排队

//阻塞

4.TIME_WAITING:按照一定的时间进行阻塞(sleep)

5.WAITING:特殊阻塞(wait)

6.BLOCKED:等待锁的时候进入阻塞状态(synchronized)


上图为各种状态的基本关系

//用getState获取线程的各种状态
public class Demo8 {
    public static void main(String[] args) throws InterruptedException {
        Thread thread = new Thread(() -> {
            for(int i = 0; i < 10_0000_0000; i++){
                //啥也不干
            }

        });
        //在start之前是new,对象创建,但内核pcb还未创建
        System.out.println(thread.getState());

        //开始
        thread.start();

        //线程正在运行
        System.out.println(thread.getState());

        //结束
        thread.join();
        //join之后该线程已经结束,状态为Terminated
        System.out.println(thread.getState());

    }
}

 该代码为new,terminated,和runnable三种线程从开始到结束的过程

 

 

time_waiting

相关文章:

  • day009--mysql中的日期函数
  • sql语句 如果为空值显示为0
  • 【MySQL数据库】- 多表查询
  • C++文件服务器项目—数据库表设计 与 后端接口设计—6
  • 聊聊Redis的数据热点问题
  • 猿创征文|瑞吉外卖——管理端_员工管理
  • springcloud springboot nacos版本对应
  • Windows安装Visual Studio2019+OpenCV配置
  • 单片机——硬件系统
  • jenkins一键部署搭建
  • 【022】Vue+Springboot+mysql汽车销售系统课设(含源码、数据库、运行教程、实验报告)
  • 【Golang开发面经】字节跳动(三轮技术面)
  • SpringCloud Stream详解
  • 【苹果家庭推送iMessage位置推送】群发安装软件获取home目录路径的函数: NSString *homeDir = NSHomeDirectory()
  • 【Python基础入门7】程序的组织结构、range函数及pass语句
  • @jsonView过滤属性
  • 【Amaple教程】5. 插件
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • docker python 配置
  • Javascript编码规范
  • laravel5.5 视图共享数据
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 从零搭建Koa2 Server
  • 大快搜索数据爬虫技术实例安装教学篇
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 那些被忽略的 JavaScript 数组方法细节
  • 最简单的无缝轮播
  • ionic入门之数据绑定显示-1
  • ​渐进式Web应用PWA的未来
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #define
  • #NOIP 2014#Day.2 T3 解方程
  • #QT(串口助手-界面)
  • #每天一道面试题# 什么是MySQL的回表查询
  • $forceUpdate()函数
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (6)STL算法之转换
  • (TOJ2804)Even? Odd?
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (三)c52学习之旅-点亮LED灯
  • (十三)Flask之特殊装饰器详解
  • (译) 函数式 JS #1:简介
  • (转载)(官方)UE4--图像编程----着色器开发
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • 、写入Shellcode到注册表上线
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .htaccess配置常用技巧
  • .NET Framework 4.6.2改进了WPF和安全性
  • .net 发送邮件