python多进程共享变量
作者:geosson 发布时间:2023-08-30 07:40:53
标签:python,多进程,共享变量
本文实例为大家分享了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']


猜你喜欢
- 一、工厂模式(Factory Pattern)工厂模式(Factory Pattern),提供了一种实例化(创建)对象的最佳方式。在工厂模式
- 多个if语句是每次单独判断比如:例子一a = 5if a < 6: #条件1 &
- 研究编码,得知GB2312编码与区位码的关系,尝试之后,得此程序。搜索,似乎没人写,故发此地。1.简述(1)GB2312标准的定义,其实就是
- 本文实例讲述了php获取客户端IP及URL的方法。分享给大家供大家参考,具体如下:function getonlineip(){//获取用户
- XML是一个精简的SGML,它将SGML的丰富功能与HTML的易用性结合到Web的应用中。XML保留了SGML的可扩展功能,这使XML从根本
- 创建索引:MySql创建索引的语法如下:CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
- 函数: # 什么是函数:一系列python语句的组合,可以在程序中运行一次或者多次# 一般是完成具体的独立的功能# 为什么要使用函数# 代码
- 本文实例讲述了Python实现的使用telnet登陆聊天室。分享给大家供大家参考。具体如下:前久在家学习Python的时候写的一个简单的聊天
- 看代码吧~class ConvNet(nn.module): def __init__(self, num_cla
- 本代码主要实现的是利用网络传输图片,用在我的树莓派项目之上。该项目在PC上运行服务端,树莓派上运行客户端,两者连接到同一局域网中,修改代码中
- 数据库连接池对一个简单的数据库应用,由于对数据库的访问不是很频繁,这时可以简单地在需要访问数据库时,就新创建一个连接,就完后就关闭它,这样做
- 看了一段时间关于js原型的知识,js的扩展方法是基于原型的,如Array.prototype.XXXX就是给Array扩展XXX方法,然后数
- 其实就是利用文件“global.asa”!许多ASP编程新手都想知道这东西是什么?事实上,global.asa就是一个事件驱动程序,其中共包
- 之前使用smarty的时候,通常是在php程序端读取数据(一般从数据库),然后assign给模板的变量,才可以在前端使用这个变量。这样不是不
- 使用pyserial进行串口传输一、安装pyserial以及基本用法在cmd下输入命令pip install pyserial注:升级pip
- 为了查找这些存储过程,你可以花时间在互联网搜索,查看一些你还未知道的存储过程,也许在一两个小时您可能会发现你想要...也许你很幸运的找到,其
- HTML中使背景图片自适应浏览器大小实例详解解决办法:1、图片不够大,又background属性不能拉伸图片; 2、只能用个div,把其z-
- 前言双端比较算法是vue2.x采用的diff算法,本篇文章只是对双端比较算法粗略的过程进行了一下分析,具体细节还是得Vue源码,Vue的源码
- MySQL超长字符截断又名"SQL-Column-Truncation",是安全研究者Stefan Esser在2008
- 从 github 下载https://github.com/acheong08/ChatGPT环境配置conda 创建虚拟环境我选择用 an