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程序设计有所帮助。

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值