【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就会 ...
随机推荐
- WEB环境相关技术、配置
一.简介(基本概念) web开发中基本概念和用到的技术: A — AJAX AJAX 全称为“ Asynchronous JavaScript and XML ”(异步 JavaScript 和 XM ...
- UI基础二:下拉,F4,OP等
常用的搜索帮助有SE11的SH,域,值列表,组件等...下面介绍一下经常用的: 一:下拉 dropdown是最经常用的,也是最简单的一种. 不管是查询条件,还是结果清单,还是明细界面,下拉都是一样的 ...
- C语言实现哈夫曼编码(最小堆,二叉树)
// 文件中有通过QT实现的界面#include <stdio.h> #include <stdlib.h> #include <string.h> typedef ...
- ThinkPHP3上传文件中遇到的问题
在用ThinkPHP3上传图片的开发过程中遇到如下几个问题: 上传根目录不存在!请尝试手动创建:./Uploads/: 上传的图片,中文名称乱码: 上传文件时会自动生成一个以当前日期命名的文件夹,并将 ...
- SpringMvc4.2.5 零配置出现 No mapping found for HTTP request with URI(转)
原文地址:SpringMvc4.2.5 零配置出现 No mapping found for HTTP request with URI 采用 spring 零配置,参考 http://hanqunf ...
- python3+paramiko实现ssh客户端
一.程序说明 ssh客户端实现主要有以下四个问题: 第一个问题是在python中ssh客户端使用哪个包实现----我们这里使用的是paramiko 第二个问题是怎么连接服务器----连接服务器直接使用 ...
- WebSphere概要文件的创建与删除
一.创建单server服务器 /was/bin/manageprofiles.sh -create -profileName server1 \ -profilePath /was/profiles/ ...
- 异步socket处理
服务器端: #include <boost/thread.hpp> #include <boost/asio.hpp> #include <boost/date_time ...
- windows中mysql5.7保存emoji表情
1.找到my.ini文件,修改一下配置: [client] default-character-set=utf8mb4 [mysqld] character-set-client-handshake ...
- POJ 1001 Exponentiation(大数运算)
POJ 1001 Exponentiation 时限:500 ms 内存限制:10000 K 提交材料共计: 179923 接受: 43369 描述:求得数R( 0.0 < R < ...