由於GIL,我認爲多線程python進程只能有一個線程同時運行,因此cpu的使用率不能超過100%。爲什麼單個python進程的CPU使用率可能超過100%?
但是我發現代碼下面的代碼可以佔用950%的cpu佔用率。
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 interpreters uses up to 130% of my CPU. How is that possible?的問題不是一回事。在這個問題中,OP說他正在做I/O密集型負載測試,它可能會釋放GIL。但在我的程序中,沒有I/O操作。
測試在CPython 2.6.6上運行。
你檢查過了嗎? ... http://stackoverflow.com/a/29477244/1406040 – nKandel
@nKandel是的,我知道什麼950%的CPU使用意味着什麼。但我不知道爲什麼多線程python進程可以使用多個cpu核心。 – WKPlus
因爲Linux研究人員想要證明他們的系統是最好的:它使得proc運行速度提高了10倍(是的,); –