线程的状态转换

本文详细介绍了线程在程序执行过程中的各种状态变化,包括新建、就绪、运行、阻塞、等待、计时等待和终止,并探讨了每个状态转换的触发条件和相关API如start(),yield(),synchronized等。
摘要由CSDN通过智能技术生成

线程的状态转换涵盖了新建、就绪、运行、阻塞、等待、计时等待和终止等状态。以下是详细介绍:

  • 新建状态(New)。线程刚被创建但尚未启动的状态,当调用线程的start()方法时,线程状态从新建变为就绪。
  • 就绪状态(Runnable)。线程准备运行但尚未获得CPU使用权的状态,当线程获得CPU使用权时,状态变为运行。
  • 运行状态(Running)。线程正在执行其run()方法中的代码,如果线程调用yield()方法或被操作系统调度,可能转为就绪状态。
  • 阻塞状态(Blocked)。线程因等待获取锁(如synchronized关键字或ReentrantLock)而暂时无法执行,一旦获取锁,线程状态变为就绪。
  • 等待状态(Waiting)。线程调用没有设置超时参数的Object.wait()、Thread.join()或LockSupport.park()方法,处于等待其他线程的通知或动作,被通知后状态变为就绪。1256
  • 计时等待状态(Timed Waiting)。线程调用设置了超时参数的wait(n)、join(n)或sleep(n)方法,处于等待特定时间的状态,超时后状态变为就绪。
  • 终止状态(Terminated)。线程执行完毕或因异常而结束,进入终止状态,不能再转换为其他状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值