背景
在使用python flask部署模型api时,发现单个进程的cpu使用率能达到500%左右,超过了100%
原因
python的GIL锁仅针对纯python代码有效,例如:Python interpreters uses up to 130% of my CPU. How is that possible?
使用如下的纯python代码,多线程cpu使用率不会超过100%(实测最多101%)
import threading
import time
def f():
while 1:
pass
for i in range(10):
t = threading.Thread(target=f)
t.setDaemon(True)
t.start()
time.sleep(60)
当工程不是纯python代码实现时,就可能会出现多线程占用多个核的情况,这样cpu使用率会超过100%