【Java】关于线程生命周期

关于线程的生命周期状态

线程的生命周期包含5个阶段,包括:新建new、就绪runnable、运行running、阻塞blocked、死亡terminated。
当线程进入运行状态后,一般的操作系统是采用抢占式的方式来让线程获得CPU。所以CPU需要在多条线程之间切换,于是线程状态也会多次在运行、阻塞、就绪之间切换。
但除了传统的五个状态外,线程还有等待状态,在下面都有代码实现。
在这里插入图片描述

1. 新建new

NEW(新建状态):新创建后尚未启动的线程处于这种状态。

/**
     * 创建线程并获取当前状态
     * @param args
     */
    public static void main(String[] args) {
    	System.out.println("TestDemo正在运行,创建一个线程并获取当前状态:"+new Thread().getState());
    }

在这里插入图片描述

2. 就绪runnable

RUNNABLE(运行状态):Java虚拟机中处于该状态的线程,对应操作系统状态中的Running和Ready,表示该线程正在执行或者等待操作系统分配执行时间。

 /**
     * 实现Runnable接口创建线程,调用线程获取当前状态
     * @author xingyanan01-lhq
     */
    public static class TestDemo1 implements Runnable{
		@Override
		public void run() {
			System.out.println("TestDemo1正在运行!当前线程名称"+Thread.currentThread().getName()+"当前线程状态:"+Thread.currentThread().getState());
		}
		public static void main(String[] args) {
			TestDemo1 testDemo = new TestDemo1();
    		Thread thread = new Thread(testDemo);
    		thread.start();
		}
    }

在这里插入图片描述

    /**
     * 继承Thread类可创建线程,调用线程获取当前状态
     * @author xingyanan01-lhq
     */
    public static class TestDemo2 extends Thread{
    	@Override
    	public void run() {
    		System.out.println("TestDemo2正在运行!当前线程名称"+Thread.currentThread().getName()+"当前线程状态:"+Thread.currentThread().getState());
    	}
    	public static void main(String[] args) {
    		TestDemo2 testDemo = new TestDemo2();
    		Thread thread = new Thread(testDemo);
    		thread.start();
		}
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值