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的词法分析与语法分析
May 18 Python
python装饰器初探(推荐)
Jul 21 Python
Python用list或dict字段模式读取文件的方法
Jan 10 Python
Python有序字典简单实现方法示例
Sep 28 Python
python实现批量修改图片格式和尺寸
Jun 07 Python
Python 从一个文件中调用另一个文件的类方法
Jan 10 Python
通过python爬虫赚钱的方法
Jan 29 Python
基于python-opencv3的图像显示和保存操作
Jun 27 Python
Pytorch 实现focal_loss 多类别和二分类示例
Jan 14 Python
Python中logger日志模块详解
Aug 04 Python
python RSA加密的示例
Dec 09 Python
Python实现排序方法常见的四种
Jul 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
基于mysql的论坛(1)
2006/10/09 PHP
PHP similar_text 字符串的相似性比较函数
2010/05/26 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
PHP实现唤起微信支付功能
2019/02/18 PHP
js常用代码段收集
2011/10/28 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
javascript+html5实现绘制圆环的方法
2015/07/28 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
详解Vue 普通对象数据更新与 file 对象数据更新
2017/04/26 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
vue2.x集成百度UEditor富文本编辑器的方法
2018/09/21 Javascript
vue通过cookie获取用户登录信息的思路详解
2018/10/30 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
python读取浮点数和读取文本文件示例
2014/05/06 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
windows10下安装TensorFlow Object Detection API的步骤
2019/06/13 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
Pycharm中如何关掉python console
2020/10/27 Python
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
竞聘书怎么写,如何写?
2014/03/31 职场文书
中学生期中自我鉴定
2014/04/20 职场文书
英文求职信范文
2014/05/23 职场文书
2015年个人思想总结
2015/03/09 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
学生安全责任协议书
2016/03/22 职场文书
Python实现socket库网络通信套接字
2021/06/04 Python
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏
Python基本的内置数据类型及使用方法
2022/04/13 Python