【并发编程】线程生命周期

状态流转总图

0.新建状态New

  • Thread类
  • 实现了Runnable接口
    • run()
  • Runnable接口
    • run(),通过Thread类或线程池来使用
  • Callable接口
    • 作为FutureTask构造方法参数使用
    • call方法,有返回值,且可以抛出异常
    • call方法实际是在Runnable的run方法中被执行

1.就绪状态Runnable

  • 调用线程的start()方法
  • 不一定会立即运行,可能需要等待CPU分配时间片

2.运行状态Running

  • 就绪线程分到CPU时间片,开始执行run()代码。

3.阻塞状态Blocked

  • 等待同步锁的状态

4.等待Waiting

  • Object.wait()
  • Thread.join()
  • LockSupport.park()

5.超时等待Timed-Waiting

  • 与Waiting状态不同在于不会一直等待,而是等待指定的时间
  • Thread.sleep(time)
  • Object.wait(long timeout)
  • Thread.join(long timeout)
  • LockSupport.parkNanos(time)
  • LockSupport.parkUntil(time)

6.终结状态Terminated

  • 当线程运行完毕即死亡
  • 抛出异常
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值