Java线程的学习_线程的生命周期

当线程被创建并启动以后,它既不是已启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)五种状态。当线程启动后,线程不可能一直霸占CPU独自运行,所以CPU需要在多条线程之间切换,于是线程状态也会多次在运行、阻塞之间切换。

线程状态转换图

由上图可知道线程的状态转换

需要注意的几个点

-只能对处于新建状态的线程调用start()方法,否则将引发IllegalThreadStateException 异常。
-启动线程使用start()方法,而不要使用run()方法,调用start()方法来启动线程,系统会把run()方法当成线程执行体来处理;但如果调用run()方法,则run()方法会立即执行,而且在run()方法返回之前其他线程无法并发执行——也就是说,系统会把run()方法当做普通方法,线程对象当成普通对象。
-线程会以如下三种方式结束,结束后就处于死亡状态:

a.run()或call()方法执行完成,线程正常结束
b.线程跑出一个未捕获的Exception或Error
c.直接调用线程的stop()方法来结束该线程

-对处于死亡状态的线程调用start()将会引发IllegalThreadStateException 异常。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值