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生成数字图片代码分享
Oct 31 Python
使用python为mysql实现restful接口
Jan 05 Python
python按行读取文件,去掉每行的换行符\n的实例
Apr 19 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
python3 实现验证码图片切割的方法
Dec 07 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
Jan 29 Python
Python根据成绩分析系统浅析
Feb 11 Python
解决pyCharm中 module 调用失败的问题
Feb 12 Python
pandas DataFrame 数据选取,修改,切片的实现
Apr 24 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
Python 实现简单的客户端认证
Jul 29 Python
python requests库的使用
Jan 06 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
用PHP生成自己的LOG文件
2006/10/09 PHP
php之对抗Web扫描器的脚本技巧
2008/10/01 PHP
smarty内置函数section的用法
2015/01/22 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
Phpstorm+Xdebug断点调试PHP的方法
2018/05/14 PHP
js模拟弹出效果代码修正版
2008/08/07 Javascript
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
jQuery实现下拉框左右选择的简单实例
2014/02/22 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
2016/07/27 Javascript
将html页面保存成图片,图片写入pdf的实现方法(推荐)
2016/09/17 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
js处理包含中文的字符串实例
2017/10/11 Javascript
JS实现按钮颜色切换效果
2020/09/05 Javascript
如何在js代码中消灭for循环实例详解
2018/07/29 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
Python模拟百度登录实例详解
2016/01/20 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
Anaconda2 5.2.0安装使用图文教程
2018/09/19 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
2019/06/17 Python
wxPython实现分隔窗口
2019/11/19 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
学习交流会主持词
2014/04/01 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
详解如何用Python实现感知器算法
2021/06/18 Python