zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    学习dubbo
    【Spring】SpringMVC配置文件
    Mac下git配置
    【Spring】入门HelloWorld
    【MySql】启动/停止
    Javaweb 编解码流程
    TensorFlow学习笔记1
    Nginx 代理配置
    【转】RPC介绍
    【dubbo】dubbo控制台搭建
  • 原文地址:https://www.cnblogs.com/wangbin2188/p/14137535.html
Copyright © 2011-2022 走看看