Manager支持的类型有

list,dict,Namespace,Lock,RLock,Semaphore,BoundedSemaphore,Condition,Event,Queue,Value和Array。

但当使用Manager处理list、dict等可变数据类型时,需要注意一个陷阱,即Manager对象无法监测到它引用的可变对象值的修改,需要通过触发__setitem__方法来让它获得通知。

而触发__setitem__方法比较直接的办法就是增加一个中间变量,如同在C语言中交换两个变量的值一样:

int a=1;int b=2;int tmp=a;a=b;b=tmp;

python例子:

from multiprocessing import Manager,Process

def test_manager():

m[0]['id'] = 2

m = Manager().list()

m.append({"id":1})

p = Process(target=test_manager)

p.start()

p.join()

print m[0]

执行结果:

{"id":1}

并未改变

修改test_manager()

def test_manager():

tmp = m[0]

tmp{"id"} = 2

m[0] = tmp

此时执行结果即为:

{"id":2}

另外,对于Process需注意对象要可被序列化pickle

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python manager详解_python 多进程共享全局变量之Manager()详解相关推荐

  1. python多线程共享全局变量_Python多线程-共享全局变量

    多线程-共享全局变量 import threading import time g_num = 200 def test1(): global g_num for i in range(5): g_n ...

  2. python io密集 多线程_python多进程和多线程究竟谁更快(详解)

    python3.6 threading和multiprocessing 四核+三星250G-850-SSD 自从用多进程和多线程进行编程,一致没搞懂到底谁更快.网上很多都说python多进程更快,因为 ...

  3. python 自动化办公 案例_python自动化工具之pywinauto实例详解

    python自动化工具之pywinauto实例详解 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: python自动化工具之pywinauto实例详解.txt ] (友情提示: ...

  4. python属性使用教程_Python对象的属性访问过程详解

    只想回答一个问题: 当编译器要读取obj.field时, 发生了什么? 看似简单的属性访问, 其过程还蛮曲折的. 总共有以下几个step: 1. 如果obj 本身(一个instance )有这个属性, ...

  5. python dataframe loc函数_python pandas.DataFrame.loc函数使用详解

    官方函数 DataFrame.loc Access a group of rows and columns by label(s) or a boolean array. .loc[] is prim ...

  6. python中configparser详解_Python中的ConfigParser模块使用详解

    1.基本的读取配置文件 -read(filename) 直接读取ini文件内容 -sections() 得到所有的section,并以列表的形式返回 -options(section) 得到该sect ...

  7. python迭代器创建序列_Python 中迭代器与生成器实例详解

    Python 中迭代器与生成器实例详解 本文通过针对不同应用场景及其解决方案的方式,总结了Python中迭代器与生成器的一些相关知识,具体如下: 1.手动遍历迭代器 应用场景:想遍历一个可迭代对象中的 ...

  8. python装饰器性能_python装饰器的特性原理详解

    这篇文章主要介绍了python装饰器的特性原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天发现了装饰器的另一种用法,下面就先上代码: d ...

  9. python迭代器与生成器_python的迭代器与生成器实例详解

    本文以实例详解了python的迭代器与生成器,具体如下所示: 1. 迭代器概述: 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后 ...

最新文章

  1. 解决Kali Linux没有声音
  2. 如何反编译,防止反编译,常见问题总结
  3. 基于MATLAB的交流电动机调速系统仿真
  4. 面向对象3(final、static、instanceof、向上/向下转型、初始化次序)
  5. MapReduce案例-wordcount-Reduce阶段代码
  6. 基于鸿蒙Hi3861和华为云平台的烟雾报警器(附源码)
  7. graphql是什么_什么是GraphQL?
  8. 大数据_Spark_框架简介---Spark工作笔记0001
  9. 短信接口与短信平台收费标准----速码云仅供参考
  10. 【图像融合】简单认识图像融合
  11. presto cube等复杂聚合函数
  12. 主成分分析法怎么提取图片中的字_视频图像的MATLAB处理(2)两种主成分分析方法...
  13. 【LeetCode】【字符串】题号:*657. 机器人能否返回原点
  14. unity update 协程_[转载]【转载】unity3D中使用协程来做“多次调用一次更新”特性的一个大坑。...
  15. C语言 谭浩强第五版 课后习题解答
  16. 重读模电教材一_童诗白、华成英
  17. 阿帕虎题库管理系统服务器,阿帕虎题库管理系统
  18. MeteoInfoLab脚本示例:数据投影-FLEXPART
  19. python正则表达式爬取链家租房信息
  20. Shim Polifill区别

热门文章

  1. 什么? 搞不定redis分布式锁?
  2. 15拆分成3个不同的自然数_17个数学重点知识点汇总,一篇搞定小升初
  3. git 撤销挂起的更改_小姐姐带你用Git
  4. python canny优化_python实现canny边缘检测
  5. linux CPU、内存、I/O、磁盘等监控统一解决方案
  6. VS Code 批量操作
  7. “资源添加到Web应用程序[]的缓存中,因为在清除过期缓存条目后可用空间仍不足 - 请考虑增加缓存的最大空间”
  8. java.sql.SQLSyntaxErrorException: ORA-00923: 未找到要求的 FROM 关键字
  9. 第十篇: 高可用的服务注册中心(Finchley版本)V2.0_dev
  10. 【算法】合并两个有序数组【LeetCode】