gpt4 book ai didi

multithreading - 等待线程仍会占用CPU时间吗?

转载 作者:行者123 更新时间:2023-12-03 13:04:58 35 4
gpt4 key购买 nike

我正在尝试为游戏引擎创建线程池,并且一直在考虑我的系统应如何响应产生自己的线程的第三方库。

根据我所读的内容,每个访问的CPU最好只有一个线程。因此,如果我的第三方物理更新生成了四个线程,则理想的是在运行时从我的线程池中关闭四个线程,然后再将它们重新打开,这样多个线程就不会争用一个CPU。

我的问题是关于条件变量等功能背后的潜在机制。由于产生线程的成本很高,因此有四个线程等待条件变量,然后在完成物理操作时通知它们,这比加入四个线程然后再产生它们要好得多。但是,如果它们正在等待变量,这些线程是否真的“处于 sleep 状态”?还是它们还在后台争用CPU资源?

最佳答案

尽管您没有编写要在哪个平台上进行编程,但是在大多数实现中,正在等待的线程消耗很少甚至没有CPU资源。

但是,它们确实会使用一些内存(以保存堆栈等),因此您应避免产生过多的线程并尝试尽可能多地重用它们,因为正如您所指出的那样,产生新的线程是一项昂贵的操作。大多数平台。

即使您没有提供很多信息,但我猜测在您的方案中,让线程等待是一个更好的选择,因为少数线程不会使用大量资源,并且可能不得不频繁地产生新线程几乎在所有平台上都会严重影响性能。

关于multithreading - 等待线程仍会占用CPU时间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20156910/

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