【Python】多进程-共享变量(Value、string、list、Array、dict)
#练习:未使用共享变量
from multiprocessing import Process
def f(n, a):
n = 3.1415927
for i in range(len(a)):
a[i] = -a[i] if __name__ == '__main__':
num = 0
arr = range(10)
p = Process(target = f, args = (num, arr))
p.start()
p.join()
print num
print arr[:] #练习:进程间共享变量,进程间都操作了num这个共享变量
from multiprocessing import Process,Value,Array def f(n,a):
n.value=3.1415
for i in range(len(a)):
a[i]=-a[i] if __name__=="__main__":
num.value=Value("d",0.0) # 创建一个进程间共享的数字类型,默认值为0,d表示小数
array=Array("i",range(10)) # 创建一个进程间共享的数组类型,初始值为range[10],i表示整数
p=Process(target=f,args=(num,array))
p.start()
p.join() print num.value
print array[:] #练习:共享string类型变量
from multiprocessing import Process,Manager,Value
from ctypes import c_char_p def greet(str):
str.value=str.value+",wangjing" if __name__=="__main__":
manager=Manager() #多进程可以共享的命名空间
shareStr=manager.Value(c_char_p,"hello") #这里c_char_p是个类
p=Process(target=greet,args=(shareStr,))
p.start()
p.join()
print shareStr.value #练习:创建共享的字典类型,列表类型
from multiprocessing import Process, Manager def f( shareDict, shareList ):
shareDict[1] = ''
shareDict[''] = 2
shareDict[0.25] = None
shareList.reverse() # 翻转列表 if __name__ == '__main__':
manager = Manager()
shareDict = manager.dict() # 创建共享的字典类型
shareList = manager.list( range( 10 ) ) # 创建共享的列表类型
p = Process( target = f, args = ( shareDict, shareList ) )
p.start()
p.join()
print shareDict
print shareList
【Python】多进程-共享变量(Value、string、list、Array、dict)的更多相关文章
- python多进程共享变量Value使用tips
前言: 在使用tornado的多进程时,需要多个进程共享一个状态变量,于是考虑使用multiprocessing.Value(对于该变量的具体细节请查阅相关资料).在根据网上资料使用Value时,由于 ...
- python -- 将string转换成dict的方法
装载自:http://smilejay.com/2014/10/convert_string_to_dict_python/ 我将数据库连接相关的一些用户名/密码/host/port等各种东西作为一个 ...
- 【python】多进程共享变量
有一个字典变量,需要在多个进程间共享 使用Manager, 下面是一个小例子. 注意使用json前需要将类型转换. #!/usr/bin/python # coding=utf-8 import js ...
- Python多进程使用
[Python之旅]第六篇(六):Python多进程使用 香飘叶子 2016-05-10 10:57:50 浏览190 评论0 python 多进程 多进程通信 摘要: 关于进程与线程的对比, ...
- python多进程断点续传分片下载器
python多进程断点续传分片下载器 标签:python 下载器 多进程 因为爬虫要用到下载器,但是直接用urllib下载很慢,所以找了很久终于找到一个让我欣喜的下载器.他能够断点续传分片下载,极大提 ...
- python 多进程开发与多线程开发
转自: http://tchuairen.blog.51cto.com/3848118/1720965 博文作者参考的博文: 博文1 博文2 我们先来了解什么是进程? 程序并不能单独运行,只有将程 ...
- 【转】【Python】Python多进程与多线程
1.1 multiprocessing multiprocessing是多进程模块,多进程提供了任务并发性,能充分利用多核处理器.避免了GIL(全局解释锁)对资源的影响. 有以下常用类: 类 描述 P ...
- Python多进程库multiprocessing创建进程以及进程池Pool类的使用
问题起因最近要将一个文本分割成好几个topic,每个topic设计一个regressor,各regressor是相互独立的,最后汇总所有topic的regressor得到总得预测结果.没错!类似bag ...
- day-4 python多进程编程知识点汇总
1. python多进程简介 由于Python设计的限制(我说的是咱们常用的CPython).最多只能用满1个CPU核心.Python提供了非常好用的多进程包multiprocessing,他提供了一 ...
- Python 多进程multiprocessing
一.python多线程其实在底层来说只是单线程,因此python多线程也称为假线程,之所以用多线程的意义是因为线程不停的切换这样比串行还是要快很多.python多线程中只要涉及到io或者sleep就会 ...
随机推荐
- 将一台电脑上的虚拟机上的系统复制到另一台电脑的虚拟机上!!!and想询问大神们问题的解决办法??
虚拟机是Oracle VM VitualBox版本 前段日子oracle老师让课下安装虚拟机+windows8+oracle数据库,但悲伤的我安了七八遍(重装系统+安装数据库+配置数据库)依旧在配置数 ...
- python-flask基本应用模板
1.模板继承 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- ORA-12537:TNS:connectionclosed错误处理过程
1.ORA-12537:TNS:connectionclosed错误处理过程 检查监听正常,oracle服务也是正常启动的,但是登录不进去. 2.解决方案 1. cd $ORACLE_HOME/bin ...
- NOI1995石子合并&多种石子合并
题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...
- Oracle 11g后台进程一览表
Background Processes Table F-1 describes Oracle Database background processes. In this context, a ba ...
- 前端基础之html常用标签
前言: 1.在B-S模式下,server服务端和客户端之间 使用http协议(规定 客户端应该怎么请求服务端,服务端应该怎么响应)通信: 2.传输过程 浏览器 向服务端发起 post/get请求 服务 ...
- js 手机号码和电话号码正则校验
checkPhone() { var mobile = ''; var tel = /^0\d{2,3}-?\d{7,8}$/; var phone = /^(((13[0-9]{1})|(15[0- ...
- 派生类时使用private的目的 《私有派生》
第一:继承方式是public的情况下: 当成员是public的时候,派生类对象可以直接调用基类的这个方法和数据, 当数据是private的时候,派生类的对象不能直接调用之,可以通过调用基类的方法来访问 ...
- UVa 10795 - A Different Task 对称, 中间状态, 数位DP 难度: 3
题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...
- 一次jenkins的错误
描述:我svn修改了一个类的名称,然后构建到jenkins发现,原来的类还在然后和现在的类一起冲突 解决:清理工作空间 然后重新部署即可.