【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就会 ...
随机推荐
- virtualenv 运行python 解决依赖冲突问题 尤其是django那种蛋疼的版本问题
Create a python virtual environment and install python dependencies. cd evalai virtualenv venv sourc ...
- WebSphere概要文件的创建与删除
一.创建单server服务器 /was/bin/manageprofiles.sh -create -profileName server1 \ -profilePath /was/profiles/ ...
- [转]perftools查看堆外内存并解决hbase内存溢出
最近线上运行的hbase发现分配了16g内存,但是实际使用了22g,堆外内存达到6g.感觉非常诡异.堆外内存用一般的工具很难查看,可以通过google-perftools来跟踪: http://cod ...
- 比较不错的几款开源的WPF Charts报表控件
UWP Community Toolkit 1. ModernUIChart Code: http://modernuicharts.codeplex.com/ Available Charts Co ...
- MATLAB 图片折腾4
重新安排矩阵的x,y,z , 在二维中就相当于把x,y 对换,在三维中相当于可以把三个坐标的位置互换. 比如A = A(:,:,1)=repmat(1,3,3);A(:,:,2)=repmat(2,3 ...
- 单元测试UI
cnpm install -g --save mocha cnpm install -g --save chai cnpm install -g --save istanbul const {sho ...
- jstree使用新的
1.首先准备jstree树的dom元素 <p id="flowList_ul" class="flowList_ul"></p> 2.初 ...
- css动画库
转载自:http://www.cnblogs.com/starof/p/4968769.html 本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方 ...
- μC/OS-II在Microblaze上的移植与使用专题--“安富利杯”赛灵思FPGA设计技巧与应用创新博文大赛参赛作品
reference:http://xilinx.eetrend.com/d6-xilinx/blog/2010-05/682.html 随着集成电路设计与制造技术的发展,FPGA芯片的容量越来越大 ...
- Jmeter响应中中文乱码怎么解决
在jmeter的bin目录下有一个jmeter.properties的文件,打开它,搜索sampleresult.default.encoding,把它的注释打开,也就是把最前面的#去掉,改成samp ...