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随机生成彩票号码的方法
Mar 05 Python
对于Python装饰器使用的一些建议
Jun 03 Python
python实现根据主机名字获得所有ip地址的方法
Jun 28 Python
一键搞定python连接mysql驱动有关问题(windows版本)
Apr 23 Python
Python调用ctypes使用C函数printf的方法
Aug 23 Python
理论讲解python多进程并发编程
Feb 09 Python
python中使用PIL制作并验证图片验证码
Mar 15 Python
python用插值法绘制平滑曲线
Feb 19 Python
python 对类的成员函数开启线程的方法
Jan 22 Python
python爬虫之验证码篇3-滑动验证码识别技术
Apr 11 Python
python字符串查找函数的用法详解
Jul 08 Python
python实现字符串完美拆分split()的方法
Jul 16 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图片裁剪函数(保持图像不变形)
2014/05/04 PHP
PHP下的浮点运算不准的解决方法
2016/10/27 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
php + ajax 实现的写入数据库操作简单示例
2020/05/16 PHP
jQuery操作 input type=checkbox的实现代码
2012/06/14 Javascript
浅谈JavaScript中的字符编码转换问题
2015/07/07 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
2016/05/05 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
深入浅析javascript函数中with
2018/10/28 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
javascript实现留言板功能
2020/02/08 Javascript
原生javascript中this几种常见用法总结
2020/02/24 Javascript
基于Cesium绘制抛物弧线
2020/11/18 Javascript
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
Python大数据之从网页上爬取数据的方法详解
2019/11/16 Python
Python Opencv图像处理基本操作代码详解
2020/08/31 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
李维斯德国官方网上商店:Levi’s德国
2016/09/10 全球购物
英国旅行箱包和行李箱购物网站:Travel Luggage & Cabin Bags
2019/08/26 全球购物
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
新浪网技术部笔试题
2016/08/26 面试题
车间班组长岗位职责
2013/11/13 职场文书
2014年加油站工作总结
2014/12/04 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
工作自我评价范文
2019/03/21 职场文书
关于保护环境的建议书
2019/06/24 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS