Python 进程之间共享数据(全局变量)的方法

今天小编就为大家分享一篇Python 进程之间共享数据(全局变量)的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
进程之间共享数据(数值型):

import multiprocessing
  
def func(num):
 num.value=10.78 #子进程改变数值的值,主进程跟着改变
  
if __name__=="__main__":
 num=multiprocessing.Value("d",10.0) # d表示数值,主进程与子进程共享这个value。(主进程与子进程都是用的同一个value)
 print(num.value)
  
 p=multiprocessing.Process(target=func,args=(num,))
 p.start()
 p.join()
  
 print(num.value)

进程之间共享数据(数组型):

import multiprocessing
  
def func(num):
 num[2]=9999 #子进程改变数组,主进程跟着改变
  
if __name__=="__main__":
 num=multiprocessing.Array("i",[1,2,3,4,5]) #主进程与子进程共享这个数组
 print(num[:])
  
 p=multiprocessing.Process(target=func,args=(num,))
 p.start() 
 p.join()
  
 print(num[:])

进程之间共享数据(dict,list):

import multiprocessing
  
def func(mydict,mylist):
 mydict["index1"]="aaaaaa" #子进程改变dict,主进程跟着改变
 mydict["index2"]="bbbbbb"
 mylist.append(11)  #子进程改变List,主进程跟着改变
 mylist.append(22)
 mylist.append(33)
  
if __name__=="__main__":
 with multiprocessing.Manager() as MG: #重命名
  mydict=multiprocessing.Manager().dict() #主进程与子进程共享这个字典
  mylist=multiprocessing.Manager().list(range(5)) #主进程与子进程共享这个List
  
  p=multiprocessing.Process(target=func,args=(mydict,mylist))
  p.start()
  p.join()
  
  print(mylist)

print(mydict)多线程用全局变量(global)

以上这篇Python 进程之间共享数据(全局变量)的方法就是小编分享给大家的全部内容了
推荐我们的Python学习扣qun:774711191 ,看看前辈们是如何学习的!从基础的python脚本到web开发、爬虫、django、数据挖掘等【PDF,实战源码】,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每天都有大牛定时讲解Python技术,分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

发布了35 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/haoxun02/article/details/104269602