首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >上下文切换线程正在等待

上下文切换线程正在等待
EN

Stack Overflow用户
提问于 2013-03-24 19:46:46
回答 1查看 594关注 0票数 2

我已经寻找这个问题的答案一天了,但是找不到一个直接的答案。我正在阅读上下文切换等待队列之类的东西,当我读到一篇文章时,我确实很好地掌握了.And的一切,当车队情况发生时,会有很多上下文切换。假设一个线程在等待互斥锁解锁的队列中,cpu会不断切换到那个等待线程的上下文,看看它等待的互斥锁是否被解锁了吗?如果这是真的,这意味着每次线程等待互斥锁解锁或条件变量的通知时,cpu上下文都会切换到这些线程进行检查。我说的对吗?谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-24 19:53:57

我假设我们讨论的是操作系统级别的互斥(没有用户模式旋转)。

操作系统将永久取消对等待线程的调度,直到互斥变为空闲。只有当正在等待的互斥被解锁时,操作系统才会调度一个或多个等待线程继续执行。

这意味着等待线程不会产生任何开销。在操作系统中没有繁忙循环旋转(“交换”)。这是有必要的,因为操作系统只是在互斥量可用时解除对等待程序的阻塞。

假设所有线程都在等待一个永远不会被释放的互斥锁。在这种情况下,服务员永远不会跑,他们永远不会被切换到。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15598041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档