java中线程的状态是如何转换的?

在 Java 中,线程有几种状态,主要包括 NEW(新建)、RUNNABLE(可运行)、BLOCKED(阻塞)、WAITING(等待)、TIMED_WAITING(计时等待)、和 TERMINATED(终止)。

以下是这些状态之间的转换:

  1. NEW(新建): 当使用 new Thread() 创建一个线程对象时,线程处于新建状态。

  2. RUNNABLE(可运行): 调用 start() 方法后,线程进入可运行状态。此时,线程调度器可以随时选择这个线程来运行。

  3. BLOCKED(阻塞): 线程在获取锁时,如果锁被其他线程占用,就会进入阻塞状态。当其他线程释放锁时,阻塞的线程重新进入可运行状态。

  4. WAITING(等待): 当线程调用 Object.wait()Thread.join()LockSupport.park() 方法时,线程进入等待状态。在等待状态下,线程需要等待其他线程的通知或中断。

  5. TIMED_WAITING(计时等待): 当线程调用带有超时参数的 Thread.sleep()Object.wait(long)Thread.join(long)LockSupport.parkNanos()LockSupport.parkUntil() 方法时,线程进入计时等待状态。在计时等待状态下,线程等待一段时间后会自动返回可运行状态。

  6. TERMINATED(终止): 线程执行完 run 方法或者发生了未捕获的异常导致线程提前终止时,线程进入终止状态。

这些状态之间的转换是由线程调度器和线程本身的操作共同决定的。例如,线程执行完 run 方法后,就会进入终止状态。阻塞状态、等待状态和计时等待状态都是由线程本身执行的一些方法引起的。不同的状态之间的切换可以通过线程的执行、等待、阻塞等操作触发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/208862.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue学习笔记-Vue3中的计算属性与监视属性

computed函数 import {reactive,computed} from vue export default {name: "DemoVue",setup(){//数据定义let person reactive({firstName : 李,lastName : 四,age:18,})//计算属性定义-简写形式person.fullName computed(()>{return person.firstName-person…

手写 Promise:深入理解异步编程的基石

手写 Promise:深入理解异步编程的基石 本文将带您逐步实现一个简单的 Promise,以帮助您深入理解异步编程的基本概念。通过自己动手编写 Promise 的过程,您将更好地理解 Promise 的工作原理和常见用法,并能够应用于实际项目中。 …

什么是网站劫持

网站劫持是一种网络安全威胁,它通过非法访问或篡改网站的内容来获取机密信息或者破坏计算机系统。如果您遇到了网站劫持问题,建议您立即联系相关的安全机构或者技术支持团队,以获得更专业的帮助和解决方案。

探索 HTTPS:保障网络通信的安全性

引言 HTTPS(HyperText Transfer Protocol Secure)是一种安全的通信协议,用于在网络上安全地传输数据。它是基于 HTTP 协议的扩展,通过加密通信实现了数据的保护和安全性。 功能介绍 加密数据传输: 使用加密技术对数…

Prism框架快速注册带有特性标签的类型

前言 最近用Prims框架,真的是懒得手动注册各种类型,不利于团队开发工作,各种dll强耦合,后期维护还麻烦,这次我们带来了一个快速注册的类来快速提高开发效率。重点用到的就是通过反射出dll里面的类型,然后根据特性或者类型过滤来完成快速注册的功能。 代码 using Prism…

Angular 进阶之四:SSR 应用场景与局限

应用场景 内容丰富,复杂交互的动态网页,对首屏加载有要求的项目,对 seo 有要求的项目(因为服务端第一次渲染的时候,已经把关键字和标题渲染到响应的 html 中了,爬虫能够抓取到此静态内容,因此更…

【面试专题】MySQL篇①

1.MySQL中,如何定位慢查询? ①介绍一下当时产生问题的场景(我们当时的一个接口测试的时候非常的慢,压测的结果大概5秒钟) ②我们系统中当时采用了运维工具( Skywalking ),可以监测出哪个接口…

PostgreSQL从小白到高手教程 - 第38讲:数据库备份

PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。 第38讲&#…

running小程序重要技术流程文档

一、项目文件说明: (注:getMyMoney无用已删除) 二、重要文件介绍 1.reinfo.js:位于utils文件下,该文件封装有统一的请求URL,和请求API同意封装供页面调用;调用时候需要在页面上先…

【C语言】操作符详解(一):进制转换,原码,反码,补码

目录 操作符分类 2进制和进制转换 2进制转10进制 10进制转2进制 2进制转8进制和16进制 2进制转8进制 2进制转16进制 原码、反码、补码 操作符分类 操作符中有一些操作符和二进制有关系,我们先铺垫一下二进制的和进制转换的知识。 2进制和进制转换 其实我们经…

数据结构准备知识

struct(结构体) struct,或称为结构体,是C语言中一种复合数据类型,它允许你将多个不同类型的数据项组合成一个单一的单位。这对于创建记录或更复杂的数据结构非常有用。 结构体的定义语法如下: struct 结…

vertica主键列能插入重复值的处理办法

问题描述 开发同事反馈在vertica中创建含主键列的表中插入重复数据时没有进行校验,插入重复值成功。经过测试着实可以插入重复值,这个坑有些不一样。 创建表和插入语句如下: --创建表 CREATE TABLE dhhtest(ID VARCHAR(64) PRIMARY KEY );…

postgresql数据库配置主从并配置ssl加密

1、先将postgresql数据库主从配置好 参考:postgresql主从配置 2、在主节点配置ssl加密,使用navicat测试是否可以连接 参考:postgresql配置ssl 3、正常连接无误后,将root.crt、server.crt、server.key复制到从数据库节点的存储…

使用Microsoft Dynamics AX 2012 - 5. 生产控制

生产控制的主要职责是生产成品。为了完成这项任务,制造业需要消耗物品和资源能力(人员和机械)。制造过程可能包括半成品的生产和库存。半成品是指物品包括在成品材料清单中。 制造业的业务流程 根据公司的要求,您可以选择申请Dy…

某马点评——day04

达人探店 发布探店笔记 改一下&#xff0c;图片保存路径就可以直接运行测试了。 查看探店笔记 Service public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IBlogService {Resourceprivate IUserService userService;Overridepublic Resu…

OpenCL学习笔记(二)手动编译开发库(win10+vs2019)

前言 有时需求比较特别&#xff0c;可能需要重新编译opencl的sdk库。本文档简单记录下win10下&#xff0c;使用vs2019编译的过程&#xff0c;有需要的小伙伴可以参考下 一、获取源码 项目地址&#xff1a;GitHub - KhronosGroup/OpenCL-SDK: OpenCL SDK 可以直接使用git命令…

一篇文章了解指针变量

字符指针变量 在指针的类型中我们知道有一种指针叫做字符指针 它的使用情况如下&#xff1a; #include<stdio.h> int main() {char pa w;char*p1&pa;*p1 a;printf("%c\n", *p1);return 0; } 在这段代码当中&#xff0c;我们将‘w’字符的地址传到了p…

vue3 自己写一个月的日历

效果图 代码 <template><div class"monthPage"><div class"calendar" v-loading"loading"><!-- 星期 --><div class"weekBox"><div v-for"(item, index) in dayArr" :key"index&q…

2.修改列名与列的数据类型

修改字段名与字段数据类型 1.修改字段名 有时&#xff0c;在我们建好一张表后会突然发现&#xff0c;哎呀&#xff01;字段名貌似写错了&#xff01;怎么办&#xff1f;要删了表再重新建一个新表吗&#xff1f;还是要删了这个字段再新建一个新的字段&#xff1f; 都不用&…

AIGC专题报告:生成式人工智能人人可用的新时代

今天分享的AIGC系列深度研究报告&#xff1a;《AIGC专题报告&#xff1a;生成式人工智能人人可用的新时代》。 &#xff08;报告出品方&#xff1a;埃森哲&#xff09; 报告共计&#xff1a;21页 人工智能发展迎来新拐点 ChatGPT 正在唤醒全球对人工智能&#xff08;AI&…