gpt4 book ai didi

linux多线程调度

转载 作者:太空狗 更新时间:2023-10-29 11:15:20 25 4
gpt4 key购买 nike

我有一个程序在 8 核服务器上启动大约 12 个线程。一些线程正在等待关键数据。在循环中使用 recv 的地方,recv 将阻塞直到数据到来。但是当有数据时,它需要尽快处理它。

我注意到的一件事是,有时连接安静时,线程没有太多事件。线程可能会进入休眠状态(怀疑?),然后当数据进来时,它需要首先醒来,因此浪费时间。我想知道是否有任何设置可以让线程不会进入休眠状态并稍后唤醒?谢谢!

最佳答案

不只是你的话题,还有其他的话题。在大范围内,您实际拥有多少线程并不重要。当您的线程等待 recv 时,调度程序可能会选择其他线程。因此,当有数据让您的 recv 返回时,您的线程将准备好运行并且可能被调度程序选择执行。如果所有内核都被优先级高于您的线程的线程占用,并且如果它们的时间片不是幸运地结束,您的线程将不得不等待 cpu。但是,为了在 recv 有数据后立即安排您的线程,您应该提高线程优先级。在这种情况下,recv 返回将使您的线程“可运行”,并且调度程序将在考虑任何其他优先级较低的线程之前切换到它。如果有必要,它甚至会停止线程中优先级较低的线程。

关于linux多线程调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15025556/

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