当前位置: 移动技术网 > IT编程>脚本编程>Python > 浅谈Python 多进程默认不能共享全局变量的问题

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

2019年03月21日  | 移动技术网IT编程  | 我要评论

inu 006,李京曼,最新列车时刻表及票价查询

主进程与子进程是并发执行的,进程之间默认是不能共享全局变量的(子进程不能改变主进程中全局变量的值)。如果要共享全局变量需要用(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 多进程默认不能共享全局变量的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网