• 线程的状态(二)


         线程在执行的过程中,它的状态属性一共有六种,具体为:新建,可运行,阻塞,等待,终止和

    TIMED_WAITING。下面详细的说下每个状态的信息,具体汇总如下:

    • 新建,也就是线程刚创建,但是还没有调用start()的方法
    • 可运行,也就是runnable,也就是说线程处于可运行的状态,表示操作系统已经给这个线程分配资源
    • 阻塞,也就是blocked,表示改线程正在等待一个监控锁,多线程的场景下很容易出现该问题
    • 等待是指线程处于等待的状态,指该线程等待另一个线程执行具体的操作
    • 终止可以理解为线程执行完毕的状态
    • 调校时间的等待可以理解为线程与时间相关的状态,如设置等待时间。

    在Java中,获取线程的状态是getState()的方法。下面结合具体的案例来查看各个状态过程中的显示,具

    体案例代码如下:

    package com.example.blog;
    
    public class ThreadStatus extends  Thread
    {
    
    	@Override
    	public void run()
    	{
    		System.out.println("验证线程的状态信息");
    	}
    
    	public static void main(String[] args)
    	{
    		ThreadStatus threadStatus=new ThreadStatus();
    		System.out.println("线程未start之前的状态信息:"+threadStatus.getState());
    		threadStatus.start();
    		System.out.println("线程调用start方法后的信息:"+threadStatus.getState());
    		try{
    			Thread.sleep(5);
    			System.out.println("线程休眠5毫秒的状态信息:"+threadStatus.getState());
    			Thread.sleep(5000);
    			System.out.println("线程等待5秒后的状态信息:"+threadStatus.getState());
    
    		}catch (Exception  e)
    		{
    			e.printStackTrace();
    		}
    	}
    }
    

    代码执行后的结果信息具体如下所示:

    线程未start之前的状态信息:NEW
    线程调用start方法后的信息:RUNNABLE
    验证线程的状态信息
    线程休眠5毫秒的状态信息:TERMINATED
    线程等待5秒后的状态信息:TERMINATED

    通过如上的结果信息可以看到,线程在创建但是未执行的情况下,它的状态是new,在执行后,线程的状态就是

    RUNNABLE,也就是运行的状态信息。在运行的过程中,如果针对线程进行了休眠,那么这个时候线程的状态

    就是设置等待时间的状态信息。线程的生命周期从NEW的状态开始,一直到TERMINATED的状态结束。

          所以在线程执行的过程中,需要针对各个不同的状态进行监控和跟踪,当然这主要是基于业务形态的需要,

    比如监控它的执行状态来判断业务执行的过程中是否符合业务的需求。

  • 相关阅读:
    OilPaint(转载/实验)
    UE4 3D artist
    render pipeline about (翻译)
    Python 相对导入 碎碎念
    USF, USH Grammar
    JZ19 顺时针打印矩阵
    JZ49 把字符串转换成整数
    JZ45 扑克牌顺子
    JZ53 表示数值的字符串
    JZ48 不用加减乘除做加法
  • 原文地址:https://www.cnblogs.com/weke/p/15988571.html
Copyright © 2020-2023  润新知