python多进程 主进程和子进程间共享和不共享全局变量实例


Posted in Python onApril 25, 2020

Python 多进程默认不能共享全局变量

主进程与子进程是并发执行的,进程之间默认是不能共享全局变量的(子进程不能改变主进程中全局变量的值)。

如果要共享全局变量需要用(multiprocessing.Value("d",10.0),数值)(multiprocessing.Array("i",[1,2,3,4,5]),数组)(multiprocessing.Manager().dict(),字典)(multiprocessing.Manager().list(range(5)))。

进程通信(进程之间传递数据)用进程队列(multiprocessing.Queue(),单向通信),管道( multiprocessing.Pipe() ,双向通信)。

python多进程 主进程和子进程间共享和不共享全局变量实例

import multiprocessing
import time
import os
 
datalist=['+++'] #全局变量,主进程与子进程是并发执行的,他们不能共享全局变量(子进程不能改变主进程中全局变量的值)
 
def adddata():
 global datalist
 datalist.append(1)
 datalist.append(2)
 datalist.append(3)
 print("子进程",os.getpid(),datalist)
 
 
if __name__=="__main__":
 
 p=multiprocessing.Process(target=adddata,args=())
 p.start()
 p.join()
 datalist.append("a")
 datalist.append("b")
 datalist.append("c")
 print("主进程",os.getpid(),datalist)

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实现k均值算法示例(k均值聚类算法)
Mar 16 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
Jan 20 Python
Python实现读取机器硬件信息的方法示例
Jun 09 Python
利用pandas读取中文数据集的方法
Jul 25 Python
对pandas处理json数据的方法详解
Feb 08 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
Feb 21 Python
PyCharm使用之配置SSH Interpreter的方法步骤
Dec 26 Python
pytorch对梯度进行可视化进行梯度检查教程
Feb 04 Python
Jupyter Notebook远程登录及密码设置操作
Apr 10 Python
Keras之fit_generator与train_on_batch用法
Jun 17 Python
python Selenium 库的使用技巧
Oct 16 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
Jan 26 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 #Python
python 在threading中如何处理主进程和子线程的关系
Apr 25 #Python
Python多线程:主线程等待所有子线程结束代码
Apr 25 #Python
解决python父线程关闭后子线程不关闭问题
Apr 25 #Python
Python标准库:内置函数max(iterable, *[, key, default])说明
Apr 25 #Python
python except异常处理之后不退出,解决异常继续执行的实现
Apr 25 #Python
python 追踪except信息方式
Apr 25 #Python
You might like
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
ThinkPHP文件上传实例教程
2014/08/22 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
PHP基于接口技术实现简单的多态应用完整实例
2017/04/26 PHP
Symfony2针对输入时间进行查询的方法分析
2017/06/28 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
H5图片压缩与上传实例
2017/04/21 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
[00:50]深扒TI7聊天轮盘语音出处6
2017/05/11 DOTA
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
Python实现在某个数组中查找一个值的算法示例
2018/06/27 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
Python生成指定数量的优惠码实操内容
2019/06/18 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
python3的pip路径在哪
2020/06/23 Python
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
查环查孕证明
2014/01/10 职场文书
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
党员公开承诺书
2014/03/25 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
实习生评语
2014/04/26 职场文书
指导教师评语
2014/04/26 职场文书
党的群众路线对照检查材料思想汇报(学校)
2014/10/04 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
观后感开头
2015/06/19 职场文书
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电