55. Thead 类中 yield 方法有什么作用?
发布日期:2021-05-12 23:59:24 浏览次数:33 分类:精选文章

本文共 371 字,大约阅读时间需要 1 分钟。

在操作系统中,当一个线程从运行状态转换为就绪状态时,接下来执行运行状态的线程会根据系统的调度策略由以下几个因素决定:

  • 调度策略:主要分为轮旋、抟轮和优先级调度等。其中,轮旋策略会轮流让每个线程都得到一轮执行机会,调度时钟将决定下一个使用执行状态。抟轮策略则会按照到达顺序先到先得地进行调度。

  • 资源占用和优先级:高优先级的任务通常会被优先调度,确保重要任务得以及时完成。如果有锁等资源,可能会释放给具有该锁机制的线程优先执行。

  • 时间片和定时任务:在有时间片限制的情况下,线程将在规定时间内执行完毕,然后转回就绪状态,轮到下一个线程。定时任务可在特定时间分配执行时间片。

  • 内核调度和抵轮接力:一些系统使用轮询式调度,定期轮询线程的活跃状态,动态决定下一个要调度的线程。

  • 综上所述,哪个线程会从就绪状态转为运行状态,取决于调度机制和相应的策略设定。

    上一篇:56. synchronized:什么是自旋?
    下一篇:54. sleep()和 wait() 有什么区别?

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2025年04月18日 22时01分23秒