JAVA多线程之线程的生命周期

新建

new关键字创建一个线程后,该线程就处于新建状态。

JVM为线程分配内存,初始化成员变量。

就绪

当线程对象调用了start()方法之后,该线程就处于就绪状态。

JVM为线程创建方法栈和程序计数器,等待线程调度器调用。

运行

就绪状态的线程获得CPU资源后,开始运行run()方法,该线程进入运行状态。

阻塞

  1. 线程调用了sleep()方法,主动放弃所占用的处理器资源
  2. 线程调用了一个阻塞IO方法,在该方法返回前,线程被阻塞
  3. 线程试图获得一个同步锁(同步监视器)但该同步锁整备其他线程所持有
  4. 线程在等待某个通知。、
  5. 程序调用了线程的suspend方法将线程挂起,但这个方法容易导致死锁,所以应尽量避免使用该方法。、

死亡

  1. run()或call()方法执行完成时,线程正常结束
  2. 线程抛出一个未捕获得Error 或Exception
  3. 调用该线程的stop()方法来结束该线程,容易导致死锁,不推荐使用

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值