from multiprocessing import Pool,Process,Value,Array,Manager
import time
import os
deff(x):
time.sleep(0.5)
print(x)
return x*x
#窜行print map(f,[1,2,3])
#mapif __name__ == '__main__':
p = Pool(11) #最多可以跑11个进程print p.map(f,[1,2,3])
Pool apply_async
deff(x):
time.sleep(0.5)
print(x)
return x*x
if __name__ == '__main__':
pool = Pool(processes=2) #最多可以跑11个进程
res_list = []
for i in range(10):
res = pool.apply_async(f,[i,]) #apply同步 apply_async异步
res_list.append(res)
for l in res_list:
l.get(timeout=1) #超时apply_async
进程的内存共享 Value Array
deff(n,a):
n.value = 888for i in range(10):
a[i] = -a[i]
if __name__ == '__main__':
num = Value('d',0.0)
arr = Array('i',range(10))
print(num.value)
print(arr[:])
p = Process(target=f,args=(num,arr))
p.start()
p.join() #窜行
print(num.value)
print(arr[:])
进程的内存共享 Manager
deff(d,l):
d['a'] = 888
l[1] = 99999
l.reverse()
if __name__ == '__main__':
manager = Manager()
d = manager.dict()
l = manager.list(range(10))
p = Process(target=f,args=(d,l))
p.start()
p.join()
print(d)
print(l[:])