该应用程序已使用Python 2.7编写并在Ubuntu 14.04上运行。
它运行50个线程,一个线程占用了所有CPU(htop中显示了100%的使用率),而其他线程则永远没有机会继续执行。看来调度程序无法更改为其他线程。那是正常的吗?
我应该尝试使用进程而不是线程吗?我在想,因为使用多处理,我可以使用更多的CPU。
https://wiki.python.org/moin/GlobalInterpreterLock
是的,在您的情况下,多处理可能是实现事物的推荐方法。或者,您可以尝试重写挂起的线程,以便它不会占用太多CPU(取决于挂起的原因,很可能算得上什么)。或至少time.sleep(0)
不时按@ user5402的建议运行。
另外,您可能会发现有用的asyncio
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句