Java线程的六种状态

本文详细介绍了Java线程的六种状态:New、Runnable、Blocked、Waiting、Timed Waiting和Terminated,并解析了它们之间的转换关系。线程从New到Runnable,再可能进入Blocked、Waiting或Timed Waiting状态,最后可能终止。特别强调了notify()、notifyAll()唤醒线程时会先进入Blocked状态,以及Timed Waiting状态的超时机制。
摘要由CSDN通过智能技术生成

在我们接触编程时,就开始接触各种生命周期,比如对象的生命周期,程序的生命周期等等,对于线程来说也是存在自己的生命周期,今天我们主要介绍线程的生命周期及其各种状态的转换。

Java线程的生命周期主要有以下六种状态:

New(新创建)

Runnable(可运行)

Blocked(被阻塞)

Waiting(等待)

Timed Waiting(计时等待)

Terminated(被终止)

在我们程序编码中如果想要确定线程当前的状态,可以通过getState()方法来获取,同时我们需要注意任何线程在任何时刻都只能是处于一种状态。

1.New 新建状态

首先我们展示一下整个线程状态的转换流程图,下面我们将进行详细的介绍讲解,如下图所示,我们可以直观的看到六种状态的转换,首先左侧上方是 NEW 状态,这是创建新线程的状态,相当于我们 new Thread() 的过程。

New 表示线程被创建但尚未启动的状态:当我们用new Thread()新建一个线程时,如果线程没有开始运行start()方法,那么线程也就没有开始执行run()方法里面的代码,那么此时它的状态就是New。而一旦线程调用了start()方法,它的状态就会从New变成Runnable,进入到图中绿色的方框。

2.Runnable 可运行状态

Java中的Runnable状态对应操作系统线程状态中的两种状态,分别是RunningReady,也就是说,Java中处于Run

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值