一个具有生命的线程有哪些状态?

一个线程一般有如下5个状态:
创建状态,就绪状态,运行状态,等待(阻塞或睡眠)状态和死亡状态。

1.创建状态:
实例化Thread对象,但没有调用start()方法时的状态。
例如:
Thread tt = new ThreadTest();
或者
Thread t = new Thread(tt);
此时,虽然创建了Thread对象,但是它们暂时不能通过isAlive()测试。

2.就绪状态:
线程有资格运行,但调度程序还没有把它选为运行线程时所处的状态。此时,线程具备了运行的条件,一旦被选中,就能马上运行。
线程创建后,调用了start()方法,线程不处于运行状态,但能通过isAlive()测试。而且在线程运行之后,或者从被则塞、等待或者睡眠状态回来之后,线程首先进入就绪状态。

3.运行状态:
从就绪状态池(注意不是队列,是池)中被选中为当前执行的线程所处的状态。

4.等待(阻塞或睡眠)状态:
线程依然活着,但是缺少运行的条件,一旦具备条件,就可以转为就绪状态(不能直接转为运行状态)。列外,suspend()和stop()方法已经被废弃了,比较危险,不要在使用了。

5.死亡状态:
一个线程的run()方法运行结束,那么该线程完成其使命,它的栈结构将解散,也就是死亡了。但是他仍然是一个Thread对象,仍可以被引用,这一点与其他对象一样,而且被引用的对象也不会被垃圾回收期回收。

一旦线程死去,它就不能重新启动了,也就是说,不能再用start()方法让他运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值