【发布时间】:2015-09-06 01:33:42
【问题描述】:
我有一台有 10 个 cpu 核心的服务器,当我运行以下代码时,其中一个线程,其中一个 cpu 核心使用率为 100%:
def fun():
while 1:
pass
但是当我使用 5 个线程运行相同的代码时,有 5 个 cpu 核心使用率分别为:30%、20%、15%、25%、12%。
为什么不是 5 个 cpu 核心分别具有 100% 的使用率?如果多个python线程不能充分利用cpu,多线程应该怎么比一个线程快?
【问题讨论】:
-
这可能是因为Global Interpreter Lock。根据您的问题,您可以使用
multiprocessing解决它。
标签: python multithreading python-multithreading gil