我使用Ubuntu 17.04有處理器英特爾睿™i7-7500U CPU @ 2.70GHz×4的64位和16GB的RAM。
所以當我運行這個程序時,它使用一個單獨的內核而不是所有的4個內核。爲什麼Python的嘗試來計算多一些計算預先
import time
import multiprocessing
def boom1(*args):
print(5**10000000000)
def boom2(*args):
print(5**10000000000)
def boom3(*args):
print(5**10000000000)
def boom4(*args):
print(5**10000000000)
if __name__=="__main__":
array = []
p1 = multiprocessing.Process(target=boom1, args=(array,))
p2 = multiprocessing.Process(target=boom2, args=(array,))
p3 = multiprocessing.Process(target=boom3, args=(array,))
p4 = multiprocessing.Process(target=boom4, args=(array,))
p1.start()
p2.start()
p3.start()
p4.start()
p1.join()
p2.join()
p3.join()
p4.join()
print('Done')
現在,如果我在每個功能打印的10一些低功率:
print(5 ** 10000000)
現在對於小的時間持續時間,單核正在處理100%,然後將所有4個核正在執行100% 。 這是爲什麼呢?它不應該從所有內核執行100%開始。
我漸漸知道的是,蟒蛇本身之前執行一些操作,因此在做,從一個單一的核心。如果是這樣的話,python是一種解釋型語言,還是我錯過了什麼?