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