代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Python
】
多进程共享变量
作者:
imcto
/ 发布于
2016/4/12
/
1251
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']
试试其它关键字
多进程
共享变量
同语言下
.
比较两个图片的相似度
.
过urllib2获取带有中文参数的url内容
.
不下载获取远程图片的宽度和高度及文件大小
.
通过qrcode库生成二维码
.
通过httplib发送GET和POST请求
.
Django下解决小文件下载
.
遍历windows的所有窗口并输出窗口标题
.
根据窗口标题调用窗口
.
python 抓取搜狗指定公众号
.
pandas读取指定列
可能有用的
.
实现测量程序运行时间及cpu使用时间
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
imcto
贡献的其它代码
(
12
)
.
取得某年(year)第几周(weeks)的星期几(weekDay)的日期
.
数字计算工具 NumberUtil
.
A*算法实现五子棋人机对弈
.
获取特定JSON格式数据节点
.
SQL被阻塞查询
.
谷歌地图添加文本标注
.
sql查询含有某列名的所有表
.
Scala调用Java类
.
最大子段和
.
多进程共享变量
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3