在Python中控制CPU使用率和线程

时间:2016-12-20 21:09:21

标签: python multithreading cpu-usage

我在Python中运行一个计算繁重的程序,在我的系统上运行大约需要10分钟。当我查看CPU使用情况时,八个内核中的一个正在徘徊在70%左右,第二个是大约20%,其余的接近0%。是否有任何方法可以强制程序100%使用单核?

编辑:我认识到利用所有8个核心并不是一个很好的选择,但有没有办法强制一个核心100%使用?

2 个答案:

答案 0 :(得分:1)

对于多核应用程序,您应该使用struct A { char c; int i; } 模块而不是multiprocessing。 Python对线程有一些(记录良好的)性能问题。有关Python和线程性能的更多信息,请搜索google以获取Global Interpreter Lock

答案 1 :(得分:0)

Python并不是真正的多线程。您可以创建线程作为管理逻辑进程的便捷方式,但应用程序本身具有global thread lock。因此,您将只能使用单个线程。

您可以使用不同风格的python,但这可能会为您提供其他问题。如果您愿意将其分解为不同的流程,则可以使用subprocess模块。这会创建两个不同的python进程,但它们可以独立运行。不幸的是,您必须编写一种与之通信的方法。