python

超轻量级php框架startmvc

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

更新时间:2020-07-15 01:30:01 作者:startmvc
进程之间共享数据(数值型):importmultiprocessingdeffunc(num):num.value=10.78#子进程改变数值的值,

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


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 进程 共享数据 全局变量