gpt4 book ai didi

c - 如何阻止线程进入 nop 或低功耗状态而不是将其自身切换出处理器

转载 作者:太空宇宙 更新时间:2023-11-04 11:05:34 28 4
gpt4 key购买 nike

我正在编写一个用户空间程序,我想在某个时候“阻塞”一个线程。如果我使用类似互斥的函数,线程将被切换出处理器。我想要的是让线程保持在处理器上,而无需在低功耗状态或循环 nop 操作中涉及上下文切换。有时,另一个线程可以将它从 nop 或低功耗状态“唤醒”或“解除阻塞”并继续执行。有什么函数或库可以使用吗?

最佳答案

这是一个很好且有效的问题。像你描述的那样的自旋循环可以使用 pause指令以启用具有更多资源的配对超线程并启用节能优化。例如。

while(condition) _mm_pause();

如果评估条件消耗了比必要更多的资源,请重复 pause 几次。例如。 ::spin_mutex使用回退算法,其中每次失败的条件检查都会导致在下一次评估之前将 pause 迭代次数加倍。

另见 this blog .

关于c - 如何阻止线程进入 nop 或低功耗状态而不是将其自身切换出处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25411869/

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