gpt4 book ai didi

multithreading - 这什么时候发生?线程在临界区挂起

转载 作者:行者123 更新时间:2023-12-04 04:33:34 25 4
gpt4 key购买 nike

我只是想知道,如果一个线程在临界区,它可以被抢占吗?

  • 线程 A : 输入CR
  • 线程 A : 暂停
  • 线程 B : 想进入CR但是不能,因为线程 A 有锁

  • 线程 A 被抢占,因此互斥锁被 卡住了线程 A , 关于这个还能做什么?

    最佳答案

    假设线程 A 被更高优先级的线程 C 抢占。现在假设线程 B 的优先级实际上高于 C。线程 B(高优先级)在等待线程 A(低优先级)持有的资源时卡住了。对此的一种解决方法称为优先级继承。

    通过优先级继承,当 B 阻塞 A 持有的资源(临界区)时,线程 A 临时“继承”线程 B 的优先级。这允许 A 抢占那个烦人的中优先级线程 C,当 A 完成资源,A 回到它原来的优先级。这让 A 摆脱了 B,可以说,消除了死锁。

    关于multithreading - 这什么时候发生?线程在临界区挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2367851/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com