通过value实现
话不多说,先上代码先上代码
import multiprocessing def func(val): val.value = 3 if __name__ == '__main__': val = multiprocessing.Value('i', 1) p = multiprocessing.Process(target=func, args=(val,)) p.start() p.join() print(val.value) # 输出3.14
通过
val = multiprocessing.Value('i', 1) 实现参数共享,其中'i' 表示共享值得类型,1 为值,其他得共享类型还有 ’f‘:浮点型,’d‘:double类型,如果要共享字符串可以这样使用:multiprocessing.Value('c', b'Hello')
通过Manger() 创建共享列表或者共享字典实现
import multiprocessing def worker_func(shared_dict): # 在进程中修改共享的字符串 shared_dict['text'] = 'World' if __name__ == "__main__": # 创建共享数据管理器 with multiprocessing.Manager() as manager: # 创建共享的字典 shared_dict = manager.dict({'text': 'Hello'}) # 启动一个进程,传递共享字典 p = multiprocessing.Process(target=worker_func, args=(shared_dict,)) p.start() p.join() # 在主进程中打印共享字符串 print(shared_dict['text'])
上面代码通过创建共享字典得方式实现共享变量,创建共享列表可以这样创建:
shared_dict = manager.list(['text'])