gpt4 book ai didi

c++ - 阻止线程吃掉所有资源

转载 作者:行者123 更新时间:2023-11-30 01:51:00 25 4
gpt4 key购买 nike

我用 QT 编写了一个程序,使用多个线程在后台执行重要操作。该程序的目标是 BeagleBone Black(单核 CPU)。但是在我的计算机(VM,i7 的 4 个内核)上进行的测试中,单独的线程已经占用了 htop 中看到的四个内核中的两个(可能是因为其中两个有一个 while(condition){}-loop 正在运行)。我怎样才能防止这些线程耗尽我所有的资源,这样我就可以在单核 arm-cpu 上运行这个多线程程序而不损失速度?我如何找出哪些线程正在耗尽我的所有 CPU 资源?

最佳答案

当您使用 Qt 时,让您的线程等待的可能性更大。你确实可以使用 QWaitCondition

这允许您让您的线程阻塞,直到某个条件在另一个线程中得到满足。然后该线程可以通知所有等待条件已满足的线程,然后唤醒它们,或者根据您的需要只通知一个线程(尽管通过一个 QWaitCondition 您无法确定/预测哪个一个人会收到通知,这取决于操作系统)。

如果您需要有关此主题(闲置)的更一般的资源,我邀请您阅读文章 In praise of idleness更全面地涵盖了这个主题。

关于c++ - 阻止线程吃掉所有资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26674098/

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