zoukankan      html  css  js  c++  java
  • 多进程共享数据:数字变量、字符串变量、列表变量、字典变量、实例对象

    from multiprocessing import Process,Manager,Value
    from ctypes import c_char_p
    
    def f(shareDict,shareList,i,s):
        shareDict[1]='1'
        shareDict[2]=2
        shareDict[0.25]=None
        shareList.reverse()
        i.value+=1
        s.value=s.value+' ,over!'
    
    if __name__ == "__main__":
        i=Value('i',0)  # 共享数字变量
        m=Manager()
        shareDict=m.dict()  # 共享字典变量
        shareList=m.list(range(5))  # 共享列表变量
        s=m.Value(c_char_p,'hello')  # 共享字符串变量
        p=Process(target=f,args=(shareDict,shareList,i,s))
        p.start()
        p.join()
        print(shareList)
        print(shareDict)
        print(i.value)
        print(s.value)
    # 共享实例对象
    from multiprocessing import Process,Value,Lock class Counter(object): def __init__(self,initval=0): self.val=Value('i',initval) self.lock=Lock() def increate(self): with self.lock: self.val.value+=1 def value(self): return self.val.value def func(counter): for i in range(5): counter.increate() if __name__ =="__main__": c=Counter(0) #实例对象 procs=[Process(target=func,args=(c,)) for i in range(3)] for p in procs:p.start() for p in procs:p.join() print(c.value())
  • 相关阅读:
    第四章:活动图
    makefile
    C语言中,头文件和源文件的关系(转)
    第三章:用例图
    第二章:建模基础
    shell编程:if语句
    shell编程:for循环
    shell基础:数值运算与运算符
    shell基础:预定义变量
    图片异步加载的几种实现方案
  • 原文地址:https://www.cnblogs.com/reyinever/p/10858084.html
Copyright © 2011-2022 走看看