gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章浅谈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 多进程默认不能共享全局变量的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/houyanhua1/article/details/78236514 。

最后此篇关于浅谈Python 多进程默认不能共享全局变量的问题的文章就讲到这里了,如果你想了解更多关于浅谈Python 多进程默认不能共享全局变量的问题的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com