Python: 为什么等待线程占用这么多 CPU

Python: Why waiting threads take so much CPU

我写了一个程序,它有一个公共资源 "Candle Set",5 个线程代理从蜡烛集中获取蜡烛,调用它们 "Workers",另一个线程代理更新蜡烛集, 称为 "Candle Agent".

所有线程都持有相同的 threading.Condition()

工作流程如下:

工作人员 wait() 在蜡烛代理更新蜡烛组之前一直处于这种状态。蜡烛代理更新蜡烛组,在条件下执行 notifyAll() 并转到 time.sleep() 5 分钟。 与此同时,工人醒来,每人从蜡烛组中取出一根蜡烛,做一些动作,然后再次回到wait()条件。

似乎一切正常,问题是,由于某种原因,当所有线程都处于 wait() 状态并且蜡烛代理处于 time.sleep() 时,我计算机的任务管理器显示 python 占了 23%。

我也将worker的数量减少到1个,这样就有了1个worker线程和1个candle agent线程,还是一样的CPU消耗...

为什么会发生这种情况?在不应该有线程 activity 的情况下如何减少 CPU 消耗?请帮忙...

找到问题了!如果将来有人偶然发现这个问题,请检查您的主线程是否存在循环!那是我的错误