python多进程共享变量


Posted in Python onApril 06, 2016

本文实例为大家分享了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程序设计有所帮助。

Python 相关文章推荐
Python中操作文件之write()方法的使用教程
May 25 Python
Python中shape计算矩阵的方法示例
Apr 21 Python
Python模拟用户登录验证
Sep 11 Python
python编程使用selenium模拟登陆淘宝实例代码
Jan 25 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
Feb 17 Python
python实现梯度法 python最速下降法
Mar 24 Python
Django通过json格式收集主机信息
May 29 Python
QT5 Designer 打不开的问题及解决方法
Aug 20 Python
Python常用数字处理基本操作汇总
Sep 10 Python
Python 居然可以在 Excel 中画画你知道吗
Feb 15 Python
python socket多线程通讯实例分析(聊天室)
Apr 06 #Python
python文件的md5加密方法
Apr 06 #Python
python制作爬虫并将抓取结果保存到excel中
Apr 06 #Python
python基于隐马尔可夫模型实现中文拼音输入
Apr 01 #Python
Python使用BeautifulSoup库解析HTML基本使用教程
Mar 31 #Python
Python使用Mechanize模块编写爬虫的要点解析
Mar 31 #Python
Python语言实现获取主机名根据端口杀死进程
Mar 31 #Python
You might like
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
PHP经典面试题集锦
2015/03/19 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
JavaScript如何操作css
2020/10/24 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
Python Mysql自动备份脚本
2008/07/14 Python
Python中import机制详解
2017/11/14 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
意向书范文
2014/03/31 职场文书
高中家长寄语
2014/04/02 职场文书
投资协议书范本
2014/04/21 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
Python函数对象与闭包函数
2022/04/13 Python
Win10开机修复磁盘错误怎么跳过?Win10关闭开机磁盘检查的方法
2022/09/23 数码科技