java八股文面试[多线程]——线程的状态
5种状态一般是针对传统的线程状态来说(操作系统层面)

6种状态:Java中给线程准备的

NEW:Thread对象被创建出来了,但是还没有执行start方法。
RUNNABLE:Thread对象调用了start方法,就为RUNNABLE状态(CPU调度/没有调度)
BLOCKED、WAITING、TIME_WAITING:都可以理解为是阻塞、等待状态,因为处在这三种状态下,CPU不会调度当前线程
BLOCKED:synchronized没有拿到同步锁,被阻塞的情况
WAITING:调用wait方法就会处于WAITING状态,需要被手动唤醒
TIME_WAITING:调用sleep方法或者join方法,会被自动唤醒,无需手动唤醒
TERMINATED:run方法执行完毕,线程生命周期到头了
在Java代码中验证一下效果
NEW:
public static void main(String[] args) throws InterruptedException {Thread t1 = new Thread(() -> {});System.out.println(t1.getState());
}
RUNNABLE:
public static void main(String[] args) throws InterruptedException {Thread t1 = new Thread(() -> {while(true){}});t1.start();Thread.sleep(500);System.out.println(t1.getState());
}
BLOCKED:
public static void main(String[] args) throws InterruptedException {Object obj = new Object();Thread t1 = new Thread(() -> {// t1线程拿不到锁资源,导致变为BLOCKED状态synchronized (obj){}});// main线程拿到obj的锁资源synchronized (obj) {t1.start();Thread.sleep(500);System.out.println(t1.getState());}
}
WAITING:
public static void main(String[] args) throws InterruptedException {Object obj = new Object();Thread t1 = new Thread(() -> {synchronized (obj){try {obj.wait();} catch (InterruptedException e) {e.printStackTrace();}}});t1.start();Thread.sleep(500);System.out.println(t1.getState());
}
TIMED_WAITING:
public static void main(String[] args) throws InterruptedException {Thread t1 = new Thread(() -> {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}});t1.start();Thread.sleep(500);System.out.println(t1.getState());
}
TERMINATED:
public static void main(String[] args) throws InterruptedException {Thread t1 = new Thread(() -> {try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}});t1.start();Thread.sleep(1000);System.out.println(t1.getState());
}
知识来源:
【2023年面试】Java面向对象有哪些特征_哔哩哔哩_bilibili
相关文章:
java八股文面试[多线程]——线程的状态
5种状态一般是针对传统的线程状态来说(操作系统层面) 6种状态:Java中给线程准备的 NEW:Thread对象被创建出来了,但是还没有执行start方法。 RUNNABLE:Thread对象调用了start方法,就为RUNNABLE状…...
Go学习[合集]
文章目录 Go学习-Day1Go学习-Day2标识符变量基础语法字符串类型类型转换string和其他基本类型转换其他类型转stringstring转其他类型 指针类型运算符标准IO分支语句 Go学习-Day3循环语句函数声明init函数匿名函数闭包defer Go学习-Day4函数值传递,引用传递常用的函数…...
代码随想录算法训练营第42天 | ● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集
文章目录 前言一、01背包问题,你该了解这些!二、01背包问题,你该了解这些! 滚动数组三、416. 分割等和子集总结 前言 01背包 一、01背包问题,你该了解这些! 确定dp数组以及下标的含义 对于背包问题&#x…...
解决DNS服务器未响应错误的方法
当你将设备连接到家庭网络或具有互联网接入功能的Wi-Fi热点时,由于各种原因,互联网连接可能无法正常工作。本文中的说明适用于Windows 10、Windows 8和Windows 7。 无法连接到DNS服务器的原因 故障的一类与域名系统有关,域名系统是世界各地互联网提供商使用的分布式名称…...
SpringBoot的HandlerInterceptor拦截器使用方法
一、创建拦截器 通过实现HandlerInterceptor接口创建自己要使用的拦截器 import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.…...
java 常用 jar 包
1 Lombok 是一个 java 类库,它利用注解方式自动生成 java bean 中 getter、setter、equals 等方法,还能自动生成 logger、toString、hashCode、builder 等 日志相关变量、Object 类方法或设计模式相关的方法,能够让你的 代码更简洁࿰…...
C#面试十问
1:C#中变量类型分为哪两种?它们的区别是什么?2:Class和Struct的区别?3:C#中类的修饰符和类成员的修饰符有哪些?4:面向对象的三个特征(特点)是什么?…...
Day 41 动态规划part03 : 343. 整数拆分 96.不同的二叉搜索树
96. 不同的二叉搜索树 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n 3 输出:5示例 2: 输入:n 1…...
四轴飞行器的电池研究(MatlabSimulink仿真)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
准备HarmonyOS开发环境
引言 在开始 HarmonyOS 开发之前,需要准备好开发环境。本章将详细指导你如何安装 HarmonyOS SDK、配置开发环境、创建 HarmonyOS 项目。 目录 安装 HarmonyOS SDK 配置开发环境 创建 HarmonyOS 项目 总结 1. 安装 HarmonyOS SDK HarmonyOS SDK 是开发 Harmo…...
Java 面试 - Redis
Redis Redis 是基于键值对的非关系型数据库。Redis 拥有string、hash、list、set、zset等多种数据结构, redis具有惊人的读写性能, 其优秀的持久化机制是的它在断电和机械故障时也不会发生数据丢失, 可以用于热点数据存放, 还提供了键过期、发布订阅、食物、流水线、LUA脚本等多…...
【Go 基础篇】Go语言结构体之间的转换与映射
在Go语言中,结构体是一种强大的数据类型,用于定义和组织不同类型的数据字段。当我们处理复杂的数据逻辑时,常常需要在不同的结构体之间进行转换和映射,以便实现数据的转移和处理。本文将深入探讨Go语言中结构体之间的转换和映射技…...
Java 多线程系列Ⅳ(单例模式+阻塞式队列+定时器+线程池)
多线程案例 一、设计模式(单例模式工厂模式)1、单例模式2、工厂模式 二、阻塞式队列1、生产者消费者模型2、阻塞对列在生产者消费者之间的作用3、用标准库阻塞队列实现生产者消费者模型4、模拟实现阻塞队列 三、定时器1、标准库中的定时器2、模拟实现定时…...
将 ordinals 与 比特币智能合约集成 : 第 1 部分
将序数与比特币智能合约集成:第 1 部分 最近,比特币序数在区块链领域引起了广泛关注。 据称,与以太坊 ERC-721 等其他代币标准相比,Ordinals 的一个主要缺点是缺乏对智能合约的支持。 我们展示了如何向 Ordinals 添加智能合约功…...
【USRP】集成化仪器系列1 :信号源,基于labview实现
USRP 信号源 1、设备IP地址:默认为192.168.10.2,请勿 修改,运行阶段无法修改。 2、天线输出端口是TX1,请勿修改。 3、通道:0 对应RF A、1 对应 RF B,运行 阶段无法修改。 4、中心频率:当需要…...
串行协议——USB驱动[基础]
多年前的学习记录,整理整理。 一、USB协议基础 二、Linux内核USB驱动源码分析 USB中不同类型设备使用的 设备描述符(设备类\设备子类\设备协议) 配置不同,典型的以下几种:1)HID设备: Human Input Device人工输入设备, 如鼠标\键盘\游戏手柄等.2)CDC设备: Communi…...
健康舒适的超满意照明体验!SUKER书客SKY护眼台灯测评
健康舒适的超满意照明体验!SUKER书客SKY护眼台灯测评 2022年全国儿童青少年总体近视率为53.6%,其中6岁儿童为14.5%,小学生为36%,初中生为71.6%,高中生为81%,近视已成为当下人们遇到的比较普遍的眼健康问题…...
PID 算法
1.1 概述 比例(Proportion)积分(Integral)微分(Differential)控制器(PID控制器或三项控制器)是一种采用反馈的控制回路机制,广泛应用于工业控制系统和需要连续调制控制的…...
13.Redis 事务
Redis 事务 redis 事务事务操作multi 开启事务exec 执行事务discard 放弃当前事务watchunwatch redis 事务 Redis 的事务和 MySQL 的事务概念上是类似的。 都是把⼀系列操作绑定成⼀组。 让这⼀组能够批量执⾏。 Redis 的事务和 MySQL 事务的区别: 弱化的原⼦性: 这里指的是 …...
李宏毅机器学习课程笔记(更新ing)
CNN 为什么AlphaGo可以用CNN?棋盘抽象成图片时需要注意什么? 首先图片有两个特点: 1,只观察局部就可以显示某种pattern,比如要得出一个鸟嘴的结论,只需要观察局部图片 2,某种pattern可以出现在图…...
DeviceKit性能优化终极指南:如何避免常见的内存和CPU问题?
DeviceKit性能优化终极指南:如何避免常见的内存和CPU问题? 【免费下载链接】DeviceKit DeviceKit is a value-type replacement of UIDevice. 项目地址: https://gitcode.com/gh_mirrors/de/DeviceKit DeviceKit是一个轻量级的Swift框架ÿ…...
别再只会用na.omit删数据了!R语言缺失值处理保姆级教程:从均值填补到随机森林实战
R语言缺失值处理实战:从基础填补到随机森林的完整指南 第一次拿到带有缺失值的数据集时,大多数人的本能反应是直接删除那些不完整的记录。这种简单粗暴的做法看似省事,却可能让你的分析结果偏离真实情况。想象一下,你正在分析一组…...
他没有打断我,没有说“小孩子懂什么” ,30岁这年,我不仅拿到了父亲的认可,更拿到了他毫无保留的信任
30岁这年,我和我爸 今天和我爸坐在阳台的小茶桌前,泡了他藏了快十年的普洱,烟缸里攒了四根烟蒂,聊了整整两个小时。 散场的时候我站在窗边看他下楼开车,突然反应过来——我们今天这场对话,从头到尾没有一句“你要听话”,没有一句“钱够不够花”,没有长辈居高临下的说…...
Python @contextmanager 装饰器完全指南
在Python编程实践中,资源管理是一个永恒的话题。无论是文件句柄、数据库连接还是临时状态变更,我们都需要确保资源被正确分配并在使用后得到妥善清理。虽然传统的try...finally语句可以解决这个问题,但Python提供了更加优雅的解决方案——上下…...
2025届毕业生推荐的六大AI学术工具推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 智能写作工具DeepSeek,于论文写作里有着显著辅助价值,用户能够输入研…...
一台机器也能玩转StarRocks?手把手教你搭建单机测试环境(附避坑指南)
一台机器玩转StarRocks:单机测试环境搭建实战与避坑指南 当你想快速验证StarRocks的功能特性,或者进行本地开发测试时,单机部署是最便捷的选择。虽然官方并不推荐在生产环境中使用单机模式,但对于个人开发者、学生或测试场景来说&…...
零基础快速入门前端蓝桥杯真题速刷2451.灯的颜色变化(助力保底拿奖不捐款)深入掌握 DOM 选择器与定时器:从交通灯案例到蓝桥杯 Web 考点全解 将原题目扩展成交通灯
2451.灯的颜色变化深入掌握 DOM 选择器与定时器:从交通灯案例到蓝桥杯 Web 考点全解在蓝桥杯 Web 方向竞赛中,DOM 操作与定时器控制是高频考点。本文以一个经典的交通灯控制案例为切入点,全面解析 document.querySelector 的 ID/Class 选择语…...
2025届学术党必备的六大AI科研网站推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 为能切实有效地把文本的AIGC检测概率给降低下来,得从业经历连贯性以及统计规律这…...
工程师实操:TVA系统硬件安装与调试的核心要点
作为负责TVA系统落地的工程师,硬件部署(安装、调试)是确保系统稳定运行、检测精度达标的基础。在汽车零部件焊接点检测场景中,由于焊接环境复杂(高粉尘、强电磁、高温度)、零部件形态多样,硬件部…...
惠普暗影精灵终极控制方案:OmenSuperHub开源工具完全指南
惠普暗影精灵终极控制方案:OmenSuperHub开源工具完全指南 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度,自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 厌倦了官方Omen Gaming Hub的臃肿和广…...
