浅谈python多进程共享变量Value的使用tips


Posted in Python onJuly 16, 2019

前言:

在使用tornado的多进程时,需要多个进程共享一个状态变量,于是考虑使用multiprocessing.Value(对于该变量的具体细节请查阅相关资料)。在根据网上资料使用Value时,由于共享的是字符串,但网上介绍的都是整数或者字符,于是遇到了很多阻碍,通过查询官方文档得出了解决方案。

一、Value的构造函数:

Value的初始化非常简单,直接类似Value('d', 0.0)即可,具体构造方法为:

multiprocessing.Value(typecode_or_type, *args[, lock])。

该方法返回从共享内存中分配的一个ctypes 对象,其中typecode_or_type定义了返回的类型。它要么是一个ctypes类型,要么是一个代表ctypes类型的code。比如c_bool和'b'是同样的,因为'b'是c_bool的code。

ctypes是Python的一个外部函数库,它提供了和C语言兼任的数据类型,可以调用DLLs或者共享库的函数,能被用作在python中包裹这些库。

*args是传递给ctypes的构造参数

二、Value的使用

对于共享整数或者单个字符,初始化比较简单,参照下图映射关系即可。如i = Value('i', 1), c = Value('c', '0')。

浅谈python多进程共享变量Value的使用tips

注意,如果我们使用的code在上表不存在,则会抛出:

size = ctypes.sizeof(type_)

TypeError: this type has no size

如果共享的是字符串,则在上表是找不到映射关系的,就是没有code可用。所以我们需要使用原始的ctype类型

例如

from ctypes import c_char_p

ss = Value(c_char_p, 'ss')

ctype类型可从下表查阅

浅谈python多进程共享变量Value的使用tips

以上这篇浅谈python多进程共享变量Value的使用tips就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python  连接字符串(join %)
Sep 06 Python
python根据路径导入模块的方法
Sep 30 Python
Python import用法以及与from...import的区别
May 28 Python
python3实现字符串的全排列的方法(无重复字符)
Jul 07 Python
python 将json数据提取转化为txt的方法
Oct 26 Python
对pandas处理json数据的方法详解
Feb 08 Python
Python 通过打码平台实现验证码的实现
May 13 Python
tensorflow实现测试时读取任意指定的check point的网络参数
Jan 21 Python
Python基于codecs模块实现文件读写案例解析
May 11 Python
django 连接数据库出现1045错误的解决方式
May 14 Python
基于Python和C++实现删除链表的节点
Jul 06 Python
python实现文件+参数发送request的实例代码
Jan 05 Python
python多线程共享变量的使用和效率方法
Jul 16 #Python
Python 进程之间共享数据(全局变量)的方法
Jul 16 #Python
python实现键盘输入的实操方法
Jul 16 #Python
Django的models中on_delete参数详解
Jul 16 #Python
Python3远程监控程序的实现方法
Jul 15 #Python
python监控进程状态,记录重启时间及进程号的实例
Jul 15 #Python
Python 获取windows桌面路径的5种方法小结
Jul 15 #Python
You might like
Wordpress php 分页代码
2009/10/21 PHP
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
javascript列表框操作函数集合汇总
2013/11/28 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python 控制语句
2011/11/03 Python
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
Python中正则表达式的详细教程
2015/04/30 Python
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
利用Python2下载单张图片与爬取网页图片实例代码
2017/12/25 Python
浅析python redis的连接及相关操作
2019/11/07 Python
python识别验证码图片实例详解
2020/02/17 Python
Python爬虫爬取、解析数据操作示例
2020/03/27 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
python 自动识别并连接串口的实现
2021/01/19 Python
HTML5 canvas基本绘图之绘制五角星
2016/06/27 HTML / CSS
德国团购网站:Groupon德国
2018/03/13 全球购物
英国顶尖手表珠宝品牌独家授权经销商:HS Johnson
2020/10/28 全球购物
少先队入队活动方案
2014/02/08 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
运动会口号8字
2014/06/07 职场文书
学校安全责任书范本
2014/07/23 职场文书
篮球友谊赛通讯稿
2014/10/10 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书