• 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

  • 相关阅读:
    上传文件
    Win10中英文的切换
    2015 4.15笔试
    wpf的学习日志(二)
    静态类
    面试宝典
    设计模式 --- 模型-视图-控制器(Model View Controller)
    设计模式 --- 单例模式(Singleton)
    iOS 应用架构浅谈
    (转)Block的使用
  • 原文地址:https://www.cnblogs.com/wangbin2188/p/14137535.html
Copyright © 2020-2023  润新知