线程的状态

线程的状态转换

任务在线程中执行,线程可以是以下五种状态之一:新建、就绪、运行、阻塞、结束。

阻塞
start
run
run完成
yield或超时
join
sleep
wait
结束目标
超时
发信号
等待目标结束
等待超时
等待通知
创建的线程
新建
就绪
运行
结束
  • 新建一个线程时,它就进入新建状态(New)。调用线程的start()方法启动线程后,它就进入就绪状态(Ready)。就绪状态是可运行的,但可能还没有开始运行。操作系统必须为它分配CPU时间。
  • 就绪线程开始运行时,它就进入运行状态(Running)。如果给定的CPU时间用完或调用线程的yield()方法,处于运行状态的线程就可能进入就绪状态。
  • 有几种原因可能使线程进入阻塞状态(Blocked)(既非活动状态)。可能是它自己调用了join()、sleep()或wait()方法,也可能是其它线程调用了这些方法。它可能是在等待I/O操作的完成。当阻塞行为不起阻塞作用时,阻塞线程可能被重新激活。例如,如果线程处于休眠状态并且休眠时间已满,线程就会被重新激活并进入就绪状态。
  • 最后,如果一个线程执行完它的run()方法,这个线程就被结束(Finished)。
  • isAlive()方法是用来判断线程状态的方法。如果线程处于就绪、阻塞或者运行状态,则返回true,如果线程处于新建并且没有启动的状态,或者已经结束,则返回false。

[Java语言程序设计 进阶篇 原书第8版 29.16]

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值