Python 进程之间共享数据(全局变量)

本文详细介绍了在Python中使用multiprocessing模块实现进程间数据共享的方法,包括数值、数组、字典和列表等不同数据类型的共享,并通过实例展示了如何在主进程和子进程中同步更新共享数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 


 
  1. import multiprocessing

  2.  
  3. def func(num):

  4. num.value=10.78 #子进程改变数值的值,主进程跟着改变

  5.  
  6. if __name__=="__main__":

  7. num=multiprocessing.Value("d",10.0) # d表示数值,主进程与子进程共享这个value。(主进程与子进程都是用的同一个value)

  8. print(num.value)

  9.  
  10. p=multiprocessing.Process(target=func,args=(num,))

  11. p.start()

  12. p.join()

  13.  
  14. print(num.value)

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


 
  1. import multiprocessing

  2.  
  3. def func(num):

  4. num[2]=9999 #子进程改变数组,主进程跟着改变

  5.  
  6. if __name__=="__main__":

  7. num=multiprocessing.Array("i",[1,2,3,4,5]) #主进程与子进程共享这个数组

  8. print(num[:])

  9.  
  10. p=multiprocessing.Process(target=func,args=(num,))

  11. p.start()

  12. p.join()

  13.  
  14. print(num[:])

进程之间共享数据(dict,list):

 

 


 
  1. import multiprocessing

  2.  
  3. def func(mydict,mylist):

  4. mydict["index1"]="aaaaaa" #子进程改变dict,主进程跟着改变

  5. mydict["index2"]="bbbbbb"

  6. mylist.append(11) #子进程改变List,主进程跟着改变

  7. mylist.append(22)

  8. mylist.append(33)

  9.  
  10. if __name__=="__main__":

  11. with multiprocessing.Manager() as MG: #重命名

  12. mydict=multiprocessing.Manager().dict() #主进程与子进程共享这个字典

  13. mylist=multiprocessing.Manager().list(range(5)) #主进程与子进程共享这个List

  14.  
  15. p=multiprocessing.Process(target=func,args=(mydict,mylist))

  16. p.start()

  17. p.join()

  18.  
  19. print(mylist)

  20. print(mydict)


多线程用全局变量(global)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值