gpt4 book ai didi

linux - pthread_mutex_unlock 立即上下文切换吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:13:31 24 4
gpt4 key购买 nike

pthread_mutex_unlock 在互斥锁上被调用,另一个具有更高实时优先级的线程正在等待那个互斥锁。是在这样的系统调用期间完成上下文切换,还是仅在量子结束后线程才会被抢占?如果在这种情况下无法保证即时上下文切换,在每次 pthread_mutex_unlock 之后立即调用 sched_yield 是否是个好主意?

最佳答案

The pthread_mutex_unlock is called on mutex, and another thread with higher real-time priority is waiting for that mutex. Will be the context switch done during such system call, or the thread will be preempted only after quantum end?

通常,如果没有另一个核心可用于运行更高优先级的线程,解锁线程将被抢占。

If immediate context switch is not guaranteed in such case, is it good idea to call sched_yield immediately after each pthread_mutex_unlock?

不能保证,也不可能。另一个线程可能尚未准备好运行。

在 pthread_mutex_unlock 之后立即调用 sched_yield 是个糟糕的主意。即使是低优先级线程也会通过诸如缓存争用之类的事情损害高优先级线程的性能,因此通过不必要的额外上下文切换使低优先级线程效率低下会损害高优先级线程。

如果它没坏就不要修理它。实现了解优先事项并将尽力而为。

关于linux - pthread_mutex_unlock 立即上下文切换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33724063/

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