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实现的下载8000首儿歌的代码分享
Nov 21 Python
使用Python的Twisted框架编写简单的网络客户端
Apr 16 Python
qpython3 读取安卓lastpass Cookies
Jun 19 Python
基于python 处理中文路径的终极解决方法
Apr 12 Python
python3 实现对图片进行局部切割的方法
Dec 05 Python
python调用webservice接口的实现
Jul 12 Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
Jan 20 Python
解决运行出现'dict' object has no attribute 'has_key'问题
Jul 15 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
Aug 31 Python
通过代码简单了解django model序列化作用
Nov 12 Python
python读取excel数据并且画图的实现示例
Feb 08 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
Apache设置虚拟WEB
2006/10/09 PHP
PHP无限分类的类
2007/01/02 PHP
php 生成短网址原理及代码
2014/01/23 PHP
jquery 日期分离成年月日的代码
2010/05/14 Javascript
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
jQuery中filter()和find()的区别深入了解
2013/09/25 Javascript
js触发onchange事件的方法说明
2014/03/08 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
小程序云开发如何实现图片上传及发表文字
2019/05/17 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
vue 实现基础组件的自动化全局注册
2020/12/25 Vue.js
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
Python命令行参数解析模块getopt使用实例
2015/04/13 Python
python3+requests接口自动化session操作方法
2018/10/13 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
Python变量访问权限控制详解
2019/06/29 Python
python爬虫 正则表达式解析
2019/09/28 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
2012/02/06 面试题
金融管理毕业生求职信
2014/03/03 职场文书
某某同志考察材料
2014/05/28 职场文书
学习考察心得体会
2014/09/04 职场文书
毕业典礼主持词
2015/06/29 职场文书
2016年幼儿园庆六一开幕词
2016/03/04 职场文书
导游词之天津盘山
2019/11/01 职场文书
如何理解及使用Python闭包
2021/06/01 Python