gpt4 book ai didi

c - 与 POSIX 系统上的调度有关的互斥锁和线程优先级

转载 作者:行者123 更新时间:2023-12-04 18:22:29 24 4
gpt4 key购买 nike

在 POSIX 系统(Linux 等)中,当多个线程锁定一个公共(public)互斥体时 - 锁定顺序是否为 ?总是 观察到,或者在调度临界区中的下一个线程时,线程优先级是否会偏向具有更高优先级的线程?

标准是否提到了有关行为的任何内容?因为据我所见,它似乎只提到了所需的接口(interface)。

请注意,我正在寻找任何符合 POSIX 的系统(不仅仅是 linux)的指导,所以请随意建议其他操作系统(QNX、Minix 等)的行为。

最佳答案

多线程时等待要锁定同一个互斥锁,当互斥锁可用时,优先级最高的线程将首先被解除阻塞。如果多个线程具有相同的优先级,则解锁哪个线程将取决于使用的调度算法,例如使用先进先出策略,等待时间最长的线程将首先被唤醒。

线程优先级和同步是一个相当棘手的领域,您需要非常小心,以免导致优先级反转并导致死锁。

Butenhof 的 Programming with POSIX Threads 第 5.5 章涉及实时调度。

关于c - 与 POSIX 系统上的调度有关的互斥锁和线程优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10380988/

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