java中线程状态-死亡

线程死亡:

线程会以如下3种方式结束,结束后就处于死亡状态。

1、run()或call()方法执行完成,线程正常结束。

2、线程抛出一个未捕获的Exception或Error 

3、直接调用该线程的stop方法结束该线程---该方法容易导致死锁,通常不推荐使用。

 

为了测试某个线程是否已经死亡,可以调用线程对象isAlive()方法,当线程处于就绪、运行、阻塞三种状态时,该方法返回true;当线程处于新建、死亡两种状态,该方法将返回false。

 

注意:不要试图对一个死亡的线程调用start方法使它重新启动,死亡就是死亡,该线程不可能再次作为线程执行。(如果重新启动的话,运行之后将引发IllegalThreadStateException异常,这表明处于死亡状态的线程无法再次运行了。)

 

 1 public class StartDead extends Thread {
 2     private int i;
 3     public void run(){
 4         for(;i<30;i++){
 5             try{sleep(1000);
 6             System.out.println(getName()+" "+i);}catch(Exception e){
 7                 System.out.println(e);
 8             }
 9         }
10         
11     }
12     public static void main(String[] args){
13         StartDead s=new StartDead();
14         for(int k=0;k<100;k++){
15             //Thread.sleep(1000);
16             try{System.out.println("当先线程的名字是:"+Thread.currentThread().getName()+" "+k);
17             Thread.sleep(1000);}catch(Exception e){
18                 System.out.println(e);
19             }
20             if(k==5){
21                 s.start();
22                 System.out.println(s.isAlive());
23             }
24             if(k>5&& !s.isAlive()){
25                 s.start();
26             }
27         }
28     }
29 }

 

转载于:https://www.cnblogs.com/teng-IT/p/4445178.html

nacos3.1.0适配国产数据库 Nacos 3.1.0适配国产数据库指南 本文介绍了Nacos 3.1.0版本适配达梦数据库和人大金仓数据库的具体步骤。主要内容包括:添加达梦和人大金仓的JDBC驱动依赖,修改nacos-persistence模块的配置文件及相关Java类,以及打包和运行注意事项。文章特别指出3.1.0版本需要JDK17环境,并提供了解决常见问题的建议,如添加VM options配置和不同启动方式等。通过本文的配置指导,可以实现Nacos服务在国产数据库环境下的正常运行。 阅读详情

相关推荐

从法律文档到知识图谱

这里我们定义了两个 Pydantic 模型:Location 用于捕捉结构化的地址信息,包含可选的国家、州和地址字段;Party 用于表示合同参与方,包含必填的名称和可选的位置详情。字段描述通过告知 LLM 每个字段具体需要查找哪些信息,来辅助提取过程。"""包含结构化地址组件的位置信息。"""country: Optional[str] = Field(None, description="国家")

Anspire的博客 3030

【渝粤教育】21秋期末考试Java程序设计基础10232k2

科目编号:3717 座位号 2018-2019学年度第二学期期末考试 天然气管道长输技术 试题 2018年 7 月 一、填空题(本大题共5空,每空5分,共计25分) 1.管材的选择应考虑钢材的__________________、、以及管道使用环境等方面的要求。 2.输气管道末段应该既能储气,又能。 3.在输气管道设计中考虑效率系数E是为了_____________________________________________________。 二、判断题

渝粤题库 1057

STM32-TIM4-定时器中断

#include "project.h" #include "timer.h" //TIM4_Init(2000 ,72);//定时2ms /* 定时器中断的定时时间设定 定时器只需要配置时钟、TIM和NVIC即可 */ void TIM4_Init(u16 period, u16 prescaler) { NVIC_InitTypeDef NVIC_InitStructure; TIM_...

snaygo 6204

Java 线程的生命周期

通用的生命周期 可以用如下图所示的 “五态模式” 来描述,分别为:初始状态、可运行状态、运行状态、休眠状态、终止状态。 初始状态:线程被创建,但是还不允许分配 CPU 执行,属于编程语言特有,仅仅是在编程语言创建,操作系统层面还没有。 可运行状态:可以分配 CPU 执行,操作系统也创建了线程。 运行状态:可运行状态的线程获取到 CPU 时间分片就转换成了运行状态。 休眠状态:运行状态的 线程调用了一个阻塞的 API 或者等待某个事件,就会转换成休眠状态,同时会释放

响当当的名字 1481

三相逆变器双pi控制器参数如何调节_光伏逆变器短路特性简析

1前言短路故障相对于其他故障类型来说是比较常见的,不同的设备的短路故障,大了讲都一样,细了说各有千秋,今天我们主要聊聊光伏逆变器的短路特征。电力系统中的电源,传统意义是指的是并入电力系统的同步发电机。但随着分布式发电技术的发展,各种形式的发电装置并入电力系统。按照分布式电源并网的方式,我们大致可以分为以下三类:➤通过旋转电机和变流器并联并网的电源,主要指双馈风力发电系统;➤仅仅通过变流器...

weixin_39901404的博客 1732

从后端角度浅谈抗辐射设计----三模冗余(TMR)

三模冗余设计(TMR),是最常用的一种容错技术,三个模块采取相同的操作,以多数相同的输出作为表决系统的正确输出,即3取2,因为三个模块是相互独立的,而其中两个模块同时出错的概率是极小的,因此便可保证系统输出的可信度。然而这个设计也会存在面积浪费,功耗的增加,而且由于是冗余的设计,在后续进行综合或者pr的时候会被工具优化,因此需要对模块进行don’t touch设置;通过增值表得到,逻辑关系表达式为:Q=(Q1&Q2)|(Q1&Q3)|(Q2&Q3),通过工艺库的stdcell进行搭建,得到如下电路。

芯冰乐 328

Java五种状态以及常用的方法

Java线程的五种状态以及常用的方法 一、五种状态 创建状态(new) 准备就绪(Runnable) 运行状态(Runing) 堵塞状态(Blocked) 死亡状态(Dead) 1.新建状态:就是说单纯的创建线程,创建线程的三种方式:1.继承Thread类,2.实现Runnable接口3.实现Callable接口 2.准备就绪状态:当创建线程后调用线程的start方法来启动一个线程 表示进入准...

weixin_45342137的博客 1347

强化学习:从经典强化学习理解强化学习

1. 背景介绍 强化学习(Reinforcement Learning,RL)作为机器学习领域的重要分支,近年来取得了长足的进步。其核心思想是让智能体通过与环境的交互学习最优策略,从而最大化累积奖励。不同于监督学习和非监督学习,强化学习无需预先标注数据,而是通过试错的方式逐步学习,具有更强的适应性和泛化能力。

AI架构师小马 1805

线程五种状态(新建、就绪、运行、阻塞、死亡)

线程的5种状态:  每个 Java 程序都有一个缺省的主线程,对于 Java 应用程序,主线程是 main()方法执行的线索; 对于 Applet 程序,主线程是指挥浏览器加载并执行 Java Applet 程序的线索。要想实现多线程, 必须在主线程中创建新的线程对象。任何线程一般具有五种状态,即创建、就绪、运行、阻塞、终止。 1、新生状态        在程序中用构造方法(new操...

坚持 3万+

在 ABAP CDS View 里把 Conversion Functions 用到极致:FLTP 精度、单位换算、货币换算与小数位处理的工程化实践

数据格式转换在真实项目中比业务逻辑更容易引发问题。ABAP CDS中的转换函数(如FLTP_TO_DEC、UNIT_CONVERSION、CURRENCY_CONVERSION和DECIMAL_SHIFT)可帮助在数据库层统一数据口径,避免应用层重复处理。这些函数支持数值精度治理、单位换算、货币转换和小数位调整,能显著提升报表性能并减少逻辑分散。通过将格式转换前移到数据模型层,可以确保服务层和UI层的数据一致性,同时降低接口传输错误风险。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2353

Spring AI Alibaba实战训练营-20 基于注解驱动的MCP快速开发入门指南

本文详细讲解如何使用SpringAiAlibaba快速开发基于注解驱动的MCP应用。文章详细介绍了MCP协议并且重点介绍了Spring AI通过注解驱动的开发方式简化MCP服务开发。具体包括服务端和客户端的注解使用、城市最新时间查询MCP项目结构概览(服务端和客户端模块)以及环境配置要求。

program哲学 295

java线程是否活着_Java中线程死亡的几种情况实例分析

Java线程会议如下三种方式结束,结束后就处于死亡状态1、run()或者call()方法执行完成,线程正常结束;2、线程抛出一个未捕获的Exception或Error;3、直接调用该线程的stop()方法来结束该线程;注意:当主线程结束时,其他线程不受任何影响,并不会随之结束。一旦子线程启动起来后,它就拥有和主线程相同的地位,不会受到主线程结束的影响。为了测试某个线程是否已经死亡,可以调用线程对象...

weixin_39932762的博客 683

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Java线程生命周期及五种基本状态

一、Java中线程生命周期图 用这张图可以概述大多的线程创建及运行,简单易懂的掌握线程知识!!! 二、线程的五种基本状态 新建状态(New):至今尚未启动的线程的状态。线程刚被创建,但尚未启动。如:Thread t = new MyThread(); 就绪状态(Runnable):当调用线程对象的start()方法(t.start();),线程即进入就绪状态。处于就绪状态的线程,只是说明此线程已...

XING_Gou的博客 6828

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

java中线程的生命周期及对应的5种状态

文章目录java中线程生命周期大致分为5个状态初始状态可运行状态运行状态死亡状态阻塞状态等待队列锁池状态几个方法的比较 java中线程生命周期大致分为5个状态 新建(NEW):新创建了一个线程对象。 可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。 运行(RUN...

bruce_xia6116的博客 927

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java有哪些不同的线程生命周期_java项目中线程的生命周期有哪些

java项目中线程的生命周期有哪些发布时间:2020-11-25 16:40:08来源:亿速云阅读:76作者:Leah本篇文章为大家展示了java项目中线程的生命周期有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一个线程的生命周期:新建状态:使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态。它保持这个状态直...

weixin_36129381的博客 148

java中的线程及interrupt操作后状态的变化

java中线程的状态包括“新建状态”,”就绪状态”,”运行状态”,”阻塞状态”以及”死亡状态”.下面是java的状态变化图1.新建状态:线程被创建后进进入了新建状态Thread t=new Thread().2.就绪状态:线程调用start()方法启动线程就进入了就绪状态,又被称为可执行状态.3.运行状态:线程获取CPU执行,就由就绪状态进入了运行状态。4.阻塞状态:因某些原因造成线程放弃cpu执行

stormCoder的博客 2344

多线程的五种状态

多线程的状态 在一个程序运行的过程中,每个线程都存在如下图所示的几种状态 就绪状态: 当用new创建一个新线程时,如new Thread(s)时,该线程还没有开始运行,程序还没有开始运行线程中的代码,因为在运行之前还有一些基础工作要做 运行状态: 一旦调用start方法,线程出于运行状态,一个运行状态的线程可能正在运行也可能没有运行,这取决于操作系统给线程提供运行的时间(Java的规范说明没有...

但行好事 无问西东 4673

线程的生命周期和状态控制

线程的生命周期,就是一个线程从创建到消亡的过程。关于Java中线程的生命周期,首先看一下下面这张较为经典的图:当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)五种不同的状态。尤其是当线程启动以后,它不可能一直“霸占”着CPU独自运行,所以CPU需要在多条线程之间切换,于是线程状态也会多次在运行、阻塞之间切换。

Du_XiaoNan的博客 1317

java线程状态管理

     线程的状态控制      在这里需要明确的是:无论采用继承Thread类还是实现Runnable接口来实现应用程序的多线程能力,都需要在该类中定义用于完成实际功能的run方法,这个run方法称为线程体(Thread Body)。按照线程体在计算机系统内存中的状态不同,可以将线程分为创建、就绪、运行、睡眠、挂起和死亡等类型。这些线程状态类型下线程的特征为:      创建状态:当利用new

SecretValley的专栏 4040

java线程的生命周期及五种基本状态

一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点,Java中的多线程也就基本上掌握了。主要包括: Java线程具有五中基本状态 新建状态(New): 当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); ...

weixin_33881753的博客 298

java线程的几种状态

线程的几种状态:    在Java当中,线程通常都有五种状态:创建、就绪、运行、阻塞和死亡。    第一是创建状态。在生成线程对象,并没有调用该对象的start方法,这是线程处于创建状态。    第二是就绪状态。当调用了线程对象的start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态。在线程运行之后,从等待或者睡眠中回来之后,也会处于就

1674

Java线程的5种状态

java.lang.Thread.State 线程共包括以下 5 种状态: 1. 新建状态(New):线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。 2. 就绪状态(Runnable):也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时可能被CPU调度执行。 3. 运行状态(Running):线程获取CPU权限进行执行。需要注意的...

诗人不写诗 1685

Java中线程的生命周期

线程的生命周期:线程是一个动态的执行过程,它也有从产生到 死亡的过程。 a) 新建状态: 使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程 对象就处于新建状态。它保持这个状态直到程序 start()这个线程。 b) 就绪状态: 当线程对象调用了 start()方法之后,该线程就进入就绪状态,该状态 的线程位于可运行线程池中,变得可运行,等待获取 CPU 的使用权。 就绪状态的线程处于就绪队列中,要等待 JVM 里线程调度器的调度。 c) 运行状态: 如果就绪状态

wy200144的博客 367

java 线程有几种状态

在java中,线程通常有五种状态,创建,就绪,运行、阻塞和死亡状态。   第一是创建状态。在生成线程对象,并没有调用该对象的start方法,这是线程处于创建状态。   第二是就绪状态。当调用了线程对象的start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态。在线程运行之后,从等待或者睡眠中回来之后,也会处于就绪状态。   第

L398724306的专栏 2739

java线程中的几种状态以及相互转换

先放一张图表示java线程中的几种状态和关系创建 一般就是创建一个方法继承thread或实现runable方法的类,通过new来创建了。 就绪 当一个线程调用了start方法后,还没有获取到cpu线程。 运行 当就绪状态的线程获取到cpu后,便开始运行。 阻塞 当运行时的线程调用wait、sleep、join等方法后便进入阻塞状态,当线程重新被唤醒时,就会进入就绪或运行。 死亡 当线程的r

每天进步一点点 1605
上一篇: java中线程的控制
下一篇: java中线程的同步
aixirang3421
博客等级 码龄11年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值