线程的生命周期

1.5个阶段

1.1新建:就是刚使用new对象,new出来的线程;

新建状态

我们来看下面一段代码:

1

Thread t1 = new Thread();

这里的创建,仅仅是在JAVA的这种编程语言层面被创建,而在操作系统层面,真正的线程还没有被创建。只有当我们调用了 start() 方法之后,该线程才会被创建出来,进入Runnable状态。只有当我们调用了 start() 方法之后,该线程才会被创建出来

 

1.2就绪:

就绪:

就是调用的线程的start()方法后,这时候线程处于等待CPU分配资源阶段,谁先抢的CPU资源,谁开始执行;

1.3运行:

运行:

当就绪的线程被调度并获得CPU资源时,便进入运行状态,run方法定义了线程的操作和功能;

1.4阻塞

阻塞:在运行状态的时候,可能因为某些原因导致运行状态的线程变成了阻塞状态,比如sleep()、wait()之后线程就处于了阻塞状态,这个时候需要其他机制将处于阻塞状态的线程唤醒,比如调用notify(随机一个线程)或者notifyAll()(唤醒所有等待线程)方法。唤醒的线程不会立刻执行run方法,它们要再次等待CPU分配资源进入运行状态;

1.5销毁

销毁:如果线程正常执行完毕后或线程被提前强制性的终止或出现异常导致结束,那么线程就要被销毁,释放资源;

 

 

目录

1.5个阶段

1.1新建:就是刚使用new对象,new出来的线程;

新建状态

1.2就绪:

1.3运行:

1.4阻塞

1.5销毁



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值