线程的生命周期

新生

使用new关键字创建一个线程类的时候,就处于新生状态

就绪

线程对象调用start()方法时,该线程就处于就绪状态,线程获得cpu执行权,获取处理器资源,等待执行

运行

线程的启动是调用start()方法而不是run()方法,记住永远不要调用run()方法,因为系统会把线程对象当成普通对象,run()方法也将变成一个普通方法去执行
假如你直接调用了run()方法,不能直接通过this.getname()方法获得线程名,此时获取的是对象名,因为此时已经没有了线程体,线程对象变成了普通对象,要通过thread.currentThread().getName获取

运行的时候如果突然失去了处理器cpu的资源会回到就绪状态

阻塞

线程在调用sleep()方法,遇到IO阻塞,等待同步锁,等待通知的时候会遇到阻塞情况,都是得值线程阻塞的多重原因
在调用sleep()方法时发生了阻塞,会释放资源回到就绪状态

死亡

线程和人一样,也会生老病死,它完成了她的任务或者发生了突发的情况也会突然死去; 1,线程正常结束
2,线程抛出一个未捕获的异常或者error,如图

在这里插入图片描述

3,线程对象只能调用一次start()方法,只能在新生状态下使用,否则也会抛异常

注意
线程在运行状态发生阻塞进入阻塞状态或者失去了cpu的分配的资源,都会进入就绪状态,等待重新分配资源
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值