Java的多线程控制

->Java的多线程控制在多线程编程中经常会用到,线程在不同的方法调用后会产生多种状态之间的切换,在这里我做了一个总结,下图为线程的状态控制图:

线程状态控制图

->状态说明:

新建:线程对象被创建后的状态。

就绪:调用线程对象的start方法后,线程进入就绪状态。

        ->如果CPU此时空闲,可以分配给该线程时间片,则立即进入运行状态。

        ->如果CPU繁忙,线程仍然在就绪状态下等待。

运行:线程在就绪状态下获取时间片即可进入运行状态。

        ->如果时间片运行结束,或者调用了yield方法,该线程进入就绪状态等待下次运行。

        ->如果线程调用sleep、join、wait或遇到同步lock时,进入阻塞状态。

        ->如果线程执行完毕、调用interrupt方法或者主线程执行结束时,该线程进入终止状态。

阻塞:线程在运行时通过调用sleep、join、wait或遇到同步lock时线程进入阻塞状态。

        ->如果sleep结束会解除sleep方法引起的阻塞,该线程进入就绪状态。

        ->如果join结束会解除join方法引起的阻塞,该线程进入就绪状态。

        ->如果其他线程调用了notify、notifyAll方法会解除wait方法引起的阻塞,该线程进入就绪状态。

        ->如果线程执行了interrupt方法,则线程终止。

终止:线程生命周期结束。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值