python并发--进程间同步和通信(三)

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

复制代码
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)
复制代码

 

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

 

复制代码
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):

复制代码
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)
复制代码

转自:https://www.jb51.net/article/165424.htm

posted @   Mars.wang  阅读(195)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示