p = multiprocessing.Process(target=func, args=(num,))
p.start()
p.join()
共享数值型变量
print(num.value)
共享数组型变量
print(num[:])
Pool 进程池
进程池之间共享变量是不能使用上文方式的,因为进程池内进程关系并非父子进程,想要共享,必须使用 Manager 模块来定义。
from multiprocessing import Pool, Manager
def func(my_list, my_dict):
my_list.append(10)
my_list.append(11)
my_dict[‘a’] = 1
my_dict[‘b’] = 2
if name == ‘main’:
manager = Manager()
my_list = manager.list()
my_dict = manager.dict()
pool = Pool(processes=2)
for i in range(0, 2):
pool.apply_async(func, (my_list, my_dict))
pool.close()
pool.join()
print(my_list)
print(my_dict)
<