python多进程共享变量

作者:geosson 时间:2023-08-30 07:40:53 

本文实例为大家分享了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,多进程,共享变量
0
投稿

猜你喜欢

  • CSS Expression 的优化

    2009-09-24 13:27:00
  • ant-design-vue中的select选择器,对输入值的进行筛选操作

    2024-04-26 17:41:26
  • 分析Python中解析构建数据知识

    2022-01-12 10:23:48
  • Javascript程序优化

    2008-06-02 13:12:00
  • Python3使用requests登录人人影视网站的方法

    2021-10-04 15:42:19
  • Python读取properties配置文件操作示例

    2021-06-10 04:20:55
  • Node.js学习入门

    2024-05-13 09:58:37
  • 只有mdf文件的数据库附加失败的修复方法分享(置疑、只读)

    2012-02-12 15:55:17
  • 微信小程序 云开发模糊查询实现解析

    2023-08-24 14:47:57
  • Python中with...as...的使用方法

    2021-10-01 16:58:07
  • 详解使用pymysql在python中对mysql的增删改查操作(综合)

    2024-01-14 00:17:13
  • MySQL缓存的查询和清除命令使用详解

    2024-01-27 21:23:13
  • PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明

    2023-11-24 06:26:11
  • 一些实用的sql语句

    2024-01-23 10:14:14
  • 详解js根据百度地图提供经纬度计算两点距离

    2024-04-29 13:40:51
  • Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面

    2024-05-02 17:31:43
  • MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解

    2024-01-17 17:53:34
  • python实现将英文单词表示的数字转换成阿拉伯数字的方法

    2022-07-12 03:01:11
  • python 运算符 供重载参考

    2021-01-20 01:15:45
  • 在Python中使用成员运算符的示例

    2023-12-12 01:36:20
  • asp之家 网络编程 m.aspxhome.com