我在Python中运行一个计算繁重的程序,在我的系统上运行大约需要10分钟。当我查看CPU使用情况时,八个内核中的一个正在徘徊在70%左右,第二个是大约20%,其余的接近0%。是否有任何方法可以强制程序100%使用单核?
编辑:我认识到利用所有8个核心并不是一个很好的选择,但有没有办法强制一个核心100%使用?
答案 0 :(得分:1)
对于多核应用程序,您应该使用struct A
{
char c;
int i;
}
模块而不是multiprocessing
。 Python对线程有一些(记录良好的)性能问题。有关Python和线程性能的更多信息,请搜索google以获取Global Interpreter Lock
答案 1 :(得分:0)
Python并不是真正的多线程。您可以创建线程作为管理逻辑进程的便捷方式,但应用程序本身具有global thread lock。因此,您将只能使用单个线程。
您可以使用不同风格的python,但这可能会为您提供其他问题。如果您愿意将其分解为不同的流程,则可以使用subprocess模块。这会创建两个不同的python进程,但它们可以独立运行。不幸的是,您必须编写一种与之通信的方法。