java多线程2:线程的生命周期

线程的生命周期

线程具有生命周期,有7种状态,分别是出生状态、就绪状态、运行状态、等待状态、休眠状态、阻塞状态和死亡状态。

出生状态就是线程被创建时处于的状态,在用户创建线程,即 Thread thread= new Thread();,此时线程处于出生状态;等用户使用 thread.start()方法时,线程就进入就绪(又叫可执行)状态了,等到线程获取到系统的资源,就进入运行状态。

线程进入可执行状态,线程会在就绪与运行状态来回切换,同时还有可能进入等待、休眠、阻塞、死亡状态。

当运行状态下的线程调用thread.wait()方法时,线程进入等待状态,进入等待状态的thread必须通过调用Thread类的notify()方法才会被唤醒,而notifyall()方法是将所有处于等待状态的线程唤醒;

当线程调用Thread类的sleep()方法时,则会进入休眠状态。

当线程发出输入输出请求时,线程就进入阻塞状态,在输入输出结束后,线程才能进入就绪状态,否则一直处于阻塞状态,且不能恢复会就绪状态。

当线程的run()方法执行完毕时,就进入死亡状态。

下图完整描述

在这里插入图片描述

可以总结出使线程处于就绪状态有下面几种方法:

sleep();

wait();

等待输入/输出状态的完成

使线程进入运行状态有下面几种方法:

notify();

notifyall();

interrupt();

线程休眠时间结束

输入输出结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你们卷的我睡不着QAQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值