浅谈Python 多进程默认不能共享全局变量的问题


Posted in Python onJanuary 11, 2019

主进程与子进程是并发执行的,进程之间默认是不能共享全局变量的(子进程不能改变主进程中全局变量的值)。如果要共享全局变量需要用(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() ,双向通信)。

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 多进程默认不能共享全局变量的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
编写Python脚本批量下载DesktopNexus壁纸的教程
May 06 Python
两个命令把 Vim 打造成 Python IDE的方法
Mar 20 Python
Python的装饰器用法学习笔记
Jun 24 Python
用python写一个windows下的定时关机脚本(推荐)
Mar 21 Python
python实现图片批量压缩程序
Jul 23 Python
python实现逐个读取txt字符并修改
Dec 24 Python
python requests post多层字典的方法
Dec 27 Python
django多对多表的创建,级联删除及手动创建第三张表
Jul 25 Python
python getpass实现密文实例详解
Sep 24 Python
Python之Numpy的超实用基础详细教程
Oct 23 Python
python新手学习可变和不可变对象
Jun 11 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 Python
Python设计模式之组合模式原理与用法实例分析
Jan 11 #Python
python通过配置文件共享全局变量的实例
Jan 11 #Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 #Python
Python设计模式之职责链模式原理与用法实例分析
Jan 11 #Python
对Python中实现两个数的值交换的集中方法详解
Jan 11 #Python
对Python模块导入时全局变量__all__的作用详解
Jan 11 #Python
Python实现批量执行同目录下的py文件方法
Jan 11 #Python
You might like
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
php程序的国际化实现方法(利用gettext)
2011/08/14 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
json跟xml的对比分析
2008/06/10 Javascript
用jquery实现学校的校历(asp.net+jquery ui 1.72)
2010/01/01 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
2014/05/19 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
2014/06/23 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
2015/11/30 Javascript
详解nodejs异步I/O和事件循环
2017/06/07 NodeJs
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
JS实现小星星特效
2019/12/24 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
python下如何让web元素的生成更简单的分析
2008/07/17 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
python实现Floyd算法
2018/01/03 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
人工神经网络算法知识点总结
2019/06/11 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
python3.7 sys模块的具体使用
2019/07/22 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
C语言变量的命名规则都有哪些
2013/12/27 面试题
开学典礼主持词
2014/03/19 职场文书
旅游管理毕业生自荐信范文
2014/03/19 职场文书
公司采购主管岗位职责
2014/06/17 职场文书
北京奥运会口号
2014/06/21 职场文书
经营目标管理责任书
2014/07/25 职场文书
工作简报范文
2015/07/21 职场文书
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL