浅谈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异步任务队列示例
Apr 01 Python
python用reduce和map把字符串转为数字的方法
Dec 19 Python
Queue 实现生产者消费者模型(实例讲解)
Nov 13 Python
Python查找两个有序列表中位数的方法【基于归并算法】
Apr 20 Python
Python GUI布局尺寸适配方法
Oct 11 Python
python利用多种方式来统计词频(单词个数)
May 27 Python
在 Pycharm 安装使用black的方法详解
Apr 02 Python
Python函数参数分类原理详解
May 28 Python
Python如何安装第三方模块
May 28 Python
pytorch 常用函数 max ,eq说明
Jun 28 Python
4款Python 类型检查工具,你选择哪个呢?
Oct 30 Python
Python实战实现爬取天气数据并完成可视化分析详解
Jun 16 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
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
php读取xml实例代码
2010/01/28 PHP
常用的PHP数据库操作方法(MYSQL版)
2011/06/08 PHP
求PHP数组最大值,最小值的代码
2011/10/31 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
JavaScript中Cookies的相关使用教程
2015/06/04 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
2019/08/29 Javascript
详解element-ui中表单验证的三种方式
2019/09/18 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
python的常见命令注入威胁
2013/02/18 Python
Python 的内置字符串方法小结
2016/03/15 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
python利用微信公众号实现报警功能
2018/06/10 Python
python配置文件写入过程详解
2019/10/19 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
社会工作专业求职信
2014/07/15 职场文书
护士节演讲稿开场白
2014/08/25 职场文书
毕业生见习报告总结
2014/11/08 职场文书
社区活动总结范文
2015/05/07 职场文书
八年级作文之友情
2019/11/25 职场文书
Win11快速关闭所有广告推荐
2022/04/19 数码科技
element tree树形组件回显数据问题解决
2022/08/14 Javascript
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS