python from multiprocessing import Pool,Process,Value,Array,Manager

来源:互联网 发布:淘宝店铺激活实名认证 编辑:程序博客网 时间:2024/05/20 05:28
from multiprocessing import Pool,Process,Value,Array,Managerimport timeimport osdef f(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

def f(x):    time.sleep(0.5)    print(x)    return x*xif __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

def f(n,a):    n.value = 888    for 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

def f(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[:])
0 0