Skip to content

解释一下多线程中的优先级反转? #99

Open
@tbfungeek

Description

@tbfungeek
  • 优先级反转定义
    低优先级的任务抢占了某个资源,这时候一个高优先级并且依赖这个资源的任务因为资源被抢占,所以被阻塞的情况下,另一个不依赖这个资源的中等优先级的任务会抢占CPU时间,导致低优先级的任务被挂起,但是占用的资源又得不到释放。所以导致高优先级的任务得不到运行。

  • 优先级反转解决方案
    优先级继承:将低优先级任务的优先级提升到等待它所占有的资源的最高优先级任务的优先级.当高优先级任务由于等待资源而被阻塞时,此时资源的拥有者的优先级将会自动被提升.
    优先级天花板:将申请某资源的任务的优先级提升到可能访问该资源的所有任务中最高优先级任务的优先级

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions