【发布时间】:2015-01-04 15:43:11
【问题描述】:
我正在运行这段代码:
import random
import multiprocessing
import time
def list_append(count, id):
out_list = []
for i in range(count):
out_list.append(random.random())
return out_list
if __name__ == "__main__":
t0 = time.clock()
size = 10000000 # Number of random numbers to add
procs = 2 # Number of processes to create
jobs = []
for i in range(0, procs):
process = multiprocessing.Process(target=list_append,args=(size, i))
jobs.append(process)
# Start the processes (i.e. calculate the random number lists)
res=[]
for j in jobs:
r= j.start()
res.append(r)
# Ensure all of the processes have finished
for j in jobs:
j.join()
print "List processing complete."
print time.clock()-t0,"seconds"
不幸的是,在它的最后,res = [None,None] 虽然我希望它被我在函数list_append 中填写的列表填充。
【问题讨论】:
-
它对您通过
multiprocesssing.Pool获得结果有用吗?就像在这个example 上一样?我阅读了Process class 的文档,发现没有办法得到结果,只有退出代码。
标签: python list function multiprocessing