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

yipeiwu_com5年前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设计】。

相关文章

Python实现公历(阳历)转农历(阴历)的方法示例

Python实现公历(阳历)转农历(阴历)的方法示例

本文实例讲述了Python实现公历(阳历)转农历(阴历)的方法。分享给大家供大家参考,具体如下: 两个要点: 1、公历转农历用了查表法(第126行) 2、节气用了天文法?(第176行)...

python使用pymysql实现操作mysql

pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。 适用环境 python版本 &...

详解Python的Django框架中的中间件

什么是中间件 我们从一个简单的例子开始。 高流量的站点通常需要将Django部署在负载平衡proxy之后。 这种方式将带来一些复杂性,其一就是每个request中的远程IP地址(requ...

python 多进程共享全局变量之Manager()详解

Manager支持的类型有 list,dict,Namespace,Lock,RLock,Semaphore,BoundedSemaphore,Condition,Event,Queue...

实例详解python函数的对象、函数嵌套、名称空间和作用域

函数的对象 python中一切皆对象 函数对象的四大功能 引用 def f1(): print('from f1') f1() #调用函数 print(f1) print('*'...