python多进程共享变量

本文实例为大家分享了python多进程共享变量的相关代码,供大家参考,具体内容如下

from multiprocessing import process, manager
import os
import time
class mulfun():
def __init__(self):
self.a = [1,2,3,4,5]
self.b = 0
self.c = {}
self.s = “hello world”
self.radius = manager().dict()
self.radius[‘a’] = self.a
self.radius[‘b’] = self.b
self.radius[‘c’] = self.c
self.radius[‘s’] = self.s
def func1(self):
self.b = self.radius[‘b’]
for i in range(10):
self.b += i
self.radius[‘b’] = self.b
time.sleep(0.5)
print ‘1: ‘, self.radius[‘b’],’:’, self.radius[‘c’], os.getpid()
def func2(self):
self.c = self.radius[‘c’]
for i in [‘ab’, ‘bc’, ‘cd’, ‘df’, ‘fg’]:
self.c[i] = i + i
self.radius[‘c’] = self.c
time.sleep(0.5)
print ‘2: ‘, self.radius[‘b’],’:’, self.radius[‘c’], os.getpid()
def run(self):
process1 = process(target=self.func1, args=())
process2 = process(target=self.func2, args=())
process1.daemon = true
process2.daemon = true
process1.start()
process2.start()
process1.join()
process2.join()
class mulsun1:
def __init__(self, radius):
self.radius = radius
self.a = radius[‘a’]
self.s = radius[‘s’]
def process(self):
for i, j in enumerate(self.a):
#self.a[i] = j * 2
#self.radius[‘a’] = self.a
time.sleep(0.5)
print ‘1: ‘, self.radius[‘a’], ‘ & ‘, self.radius[‘s’]
class mulsun2:
def __init__(self, radius):
self.radius = radius
self.a = radius[‘a’]
self.s = radius[‘s’]
def process(self):
for i in range(10):
self.s = self.s + ‘:% s’ %i
if i < len(self.a): self.a[i] += i else: self.a.append(i + i) self.radius['s'] = self.s self.radius['a'] = self.a time.sleep(0.5) print '2: ', self.radius['a'], ' & ', self.radius['s'] if __name__ == '__main__': aa = mulfun() s1 = mulsun1(aa.radius) s2 = mulsun2(aa.radius) process1 = process(target=s1.process, args=()) process2 = process(target=s2.process, args=()) process1.daemon = true process2.daemon = true process1.start() process2.start() process1.join() process2.join() print "------------------------" print 'process id:', os.getpid() print 'done' print aa.radius['a'], ' & ', aa.radius['s']

以上就是本文的全部内容,希望对大家学习python程序设计有所帮助。

Posted in 未分类

发表评论