当前位置: 首页 > news >正文

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

这篇文章主要介绍了python多进程 主进程和子进程间共享和不共享全局变量实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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() ,双向通信)。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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)

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

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怎么判断是http还是https_怎么判断孩子是语言发育迟缓还是自闭症?
  • 数值计算方法 pdf_IGBT以及MOSFET的驱动参数的计算方法
  • python自顶向下设计步骤_Python学习心得(一):词频统计,自顶向下设计
  • numpy 矩阵相乘_Numpy学习打卡task04
  • 表格宽度设置百分比_相对值(百分比和em)介绍
  • send函数 获得已发送数据长度_好用的云函数!后端低代码接口开发,零基础编写API接口...
  • 课程设计python调用摄像头权限_python课程设计
  • micropython定制_Micropython 如何用Turnipbit做一个自动浇水装置
  • 代码流程图怎么画_招聘流程图怎么画好看,原来方法这么简单!
  • paxos算法_zookeeper为什么弃用paxos而选用zab协议?
  • python中元组怎么存放元素_人生苦短 | Python列表和元组的性能以及存储方式等
  • 前端遍历导致查询数据时间过长_「干货」一文搞懂为什么图数据库比关系型数据库查询更快...
  • 对抗生成网络_如何应用TFGAN快速实践生成对抗网络?
  • debian编译安装python3.8_Debian8 下我想安装个 python3 的 pip,然而各种报错,完全不懂...
  • 用python语言实现人工智能猴子摘香蕉的问题_人工智能 猴子香蕉问题
  • [ JavaScript ] 数据结构与算法 —— 链表
  • JavaScript HTML DOM
  • js递归,无限分级树形折叠菜单
  • Linux快速复制或删除大量小文件
  • MySQL用户中的%到底包不包括localhost?
  • Python打包系统简单入门
  • Ruby 2.x 源代码分析:扩展 概述
  • unity如何实现一个固定宽度的orthagraphic相机
  • 关于extract.autodesk.io的一些说明
  • 今年的LC3大会没了?
  • 聊聊flink的TableFactory
  • 码农张的Bug人生 - 见面之礼
  • 前端之React实战:创建跨平台的项目架构
  • 时间复杂度与空间复杂度分析
  • 学习笔记:对象,原型和继承(1)
  • 用简单代码看卷积组块发展
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​flutter 代码混淆
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • ( 10 )MySQL中的外键
  • (3)llvm ir转换过程
  • (Ruby)Ubuntu12.04安装Rails环境
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (八十八)VFL语言初步 - 实现布局
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (十)c52学习之旅-定时器实验
  • **PHP分步表单提交思路(分页表单提交)
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET 的程序集加载上下文
  • .net/c# memcached 获取所有缓存键(keys)
  • .net打印*三角形
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • @Valid和@NotNull字段校验使用
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析