0
我開始學習Python中的多處理,但已到達我的代碼只是掛起點。它只是使用多線程計算1 000 000階乘。Python多處理掛起
import multiprocessing
def part(n):
ret = 1
n_max = n + 9999
while n <= n_max:
ret *= n
n += 1
print "Part "+ str(n-1) + " complete"
return ret
def buildlist(n_max):
n = 1
L = []
while n <= n_max:
L.append(n)
n += 10000
return L
final = 1
ne = 0
if __name__ == '__main__':
pool = multiprocessing.Pool()
results = [pool.apply_async(part, (x,)) for x in buildlist(1000000)]
for r in results:
x = r.get()
final *= x
ne+= 1
print ne
print final
我已經包含了一些打印功能,試圖診斷,其中的代碼掛起,並且將打印在部分功能包括字符串100倍,符合市場預期。 「印刷品」也工作100次。
問題是最終不會打印,代碼沒有完成。
我該如何解決這個問題?
編輯此外,由於這是downvoted,有人可以解釋我做錯了/爲什麼我被低估?
'1000!= 8.2639316883×10 ^(5,565,708)'沒有什麼簡單的。 – Daniel
當然不是,但代碼很簡單。 – Acebulf
我的意思是說,沒有多處理的階乘的代碼是相對簡單的代碼。 – Acebulf