使用manager在进程之间事项共享数据.

栗子:

主进程调用manager,创建一个字典d和一个列表l,启动十个子进程,每个子进程都向d和l中放数据

from multiprocessing import Process,Manager
import os def func(d,l):
d[os.getpid()] = os.getpid()
l.append(os.getpid())
print(d)
print(l) if __name__ == '__main__':
with Manager() as manager:#不需要加锁 自动加了
d = manager.dict()#使用manager创建一个字典对象
l = manager.list(range(5))#使用manager创建一个列表对象
p_list = []
for i in range(10):
p = Process(target=func,args=(d,l))
p_list.append(p)
p.start()
for p in p_list:
p.join()
print(d)
print(l)

输出结果:

D:\7_Python\Python37\python.exe D:/7_Python/S14/其他/aaaa.py
{10120: 10120}
[0, 1, 2, 3, 4, 10120]
{10120: 10120, 9700: 9700}
[0, 1, 2, 3, 4, 10120, 9700]
{10120: 10120, 9700: 9700, 4968: 4968}
[0, 1, 2, 3, 4, 10120, 9700, 4968]
{10120: 10120, 9700: 9700, 4968: 4968, 14212: 14212}
[0, 1, 2, 3, 4, 10120, 9700, 4968, 14212]
{10120: 10120, 9700: 9700, 4968: 4968, 14212: 14212, 2884: 2884}
[0, 1, 2, 3, 4, 10120, 9700, 4968, 14212, 2884]
{10120: 10120, 9700: 9700, 4968: 4968, 14212: 14212, 2884: 2884, 4860: 4860}
[0, 1, 2, 3, 4, 10120, 9700, 4968, 14212, 2884, 4860]
{10120: 10120, 9700: 9700, 4968: 4968, 14212: 14212, 2884: 2884, 4860: 4860, 9712: 9712}
[0, 1, 2, 3, 4, 10120, 9700, 4968, 14212, 2884, 4860, 9712]
{10120: 10120, 9700: 9700, 4968: 4968, 14212: 14212, 2884: 2884, 4860: 4860, 9712: 9712, 14164: 14164}
[0, 1, 2, 3, 4, 10120, 9700, 4968, 14212, 2884, 4860, 9712, 14164]
{10120: 10120, 9700: 9700, 4968: 4968, 14212: 14212, 2884: 2884, 4860: 4860, 9712: 9712, 14164: 14164, 15000: 15000, 2948: 2948}
[0, 1, 2, 3, 4, 10120, 9700, 4968, 14212, 2884, 4860, 9712, 14164, 15000, 2948]
{10120: 10120, 9700: 9700, 4968: 4968, 14212: 14212, 2884: 2884, 4860: 4860, 9712: 9712, 14164: 14164, 15000: 15000, 2948: 2948}
[0, 1, 2, 3, 4, 10120, 9700, 4968, 14212, 2884, 4860, 9712, 14164, 15000, 2948]
{10120: 10120, 9700: 9700, 4968: 4968, 14212: 14212, 2884: 2884, 4860: 4860, 9712: 9712, 14164: 14164, 15000: 15000, 2948: 2948}
[0, 1, 2, 3, 4, 10120, 9700, 4968, 14212, 2884, 4860, 9712, 14164, 15000, 2948] Process finished with exit code 0

多进程manager共享的更多相关文章

  1. multiprocessing.Manager共享内存的问题记录

    问题:https://stackoverflow.com/questions/8640367/python-manager-dict-in-multiprocessing 使用 multiproces ...

  2. .net4.0多进程间共享内存实现通信(VB.Net)

    .net4.0新增内存共享功能,从而很方便的实现了多进程间通信. 源码下载

  3. python学习笔记——多进程中共享内存Value & Array

    1 共享内存 基本特点: (1)共享内存是一种最为高效的进程间通信方式,进程可以直接读写内存,而不需要任何数据的拷贝. (2)为了在多个进程间交换信息,内核专门留出了一块内存区,可以由需要访问的进程将 ...

  4. Memcached Session Manager 共享tomcat session设置

    tomcat的lib下添加jar包 修改tomcat的conf目录下的context.xml文件 新增 sessionCookiePath="/" <Manager clas ...

  5. Remote desktop manager共享账号

    因为多个远程机器,是会用了域账号进行登录的.而域账号的密码,三个月之后,密码强制过期 添加一个新的entry,类型是Credential Entry,然后选择用户名/密码 在remote deskto ...

  6. python并发编程之多进程(三):共享数据&进程池

    一,共享数据 展望未来,基于消息传递的并发编程是大势所趋 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合 通过消息队列交换数据.这样极大地减少了对使用锁定和其他同步手段的需求, 还可以扩展 ...

  7. 多进程共享内存的MemoryStream

    文章转载于http://www.raysoftware.cn/?p=506 具体用处呢,有很多,比如多进程浏览器共享Cookie啦,多个进程传送点数据啦. 共享内存封装. 封装成了MemoryStre ...

  8. 多线程/多进程/异步IO

    SOCK_STREAM :TCPSOCK_Dgram :UDP family=AF_INET: 服务器之间的通信AF_INET6: 服务器之间的通信AF_UNIX: Unix不同进程间的通信 永远遵循 ...

  9. 三种进程和线程数据共享模块方法Queue》Pipe》manager

    >>>>线程中的queue import threading import queue def f(qq): print("in child",qq.qsi ...

随机推荐

  1. 虫师自动化测试robot Framework 框架的学习2

    循环的使用 1.in range和in的区别 输出结果 如果把上面的换成in range 会报错 未被定义,说明in range 后面使用的数据类型有限制,对比下,可以看出,in 可用在列表类型数据类 ...

  2. 1047 Student List for Course

    1039 Course List for Student 依靠unordered_map<string,set<int>> ans 解决问题. 这次依靠unordered_ma ...

  3. Oracle允许IP访问配置

    http://www.linuxidc.com/Linux/2014-10/108650.htm 1.oracle服务器下/opt/app/oracle/product/11.2.0/network/ ...

  4. 【转】继承了母版页的子页面中触发body的onload事件

    碰到有个继承了母版页的页面要加载body的onload事件,我发了一下午来解决这个问题,终于在国外某论坛上找到了解决方案 Method1: In the master page make the bo ...

  5. C++ windows线程操作(转)

    参考 1._beginthreadex创建线程 DWORD m_dwMSGTID; // 线程ID HANDLE m_hMSG; // 线程句柄 m_hMSG = (HANDLE)_beginthre ...

  6. 【转】C#路径中获取文件全路径、目录、扩展名、文件名称

    C#路径中获取文件全路径.目录.扩展名.文件名称 原文链接:https://www.cnblogs.com/JiYF/p/6879139.html 常用函数 需要引用System.IO   直接可以调 ...

  7. 堆(Heap)和栈(Stack)

    详细可以查看这篇文章:https://www.cnblogs.com/qingtianMo/p/5255121.html 栈保存代码执行(调用)的路径,堆负责保存对象(数据) 栈相当于摞盒子,进入一个 ...

  8. web自动化环境搭建(python+selenium+webdriver)

    本文档以谷歌浏览器为例,故自动化测试环境为下: 自动化工具为:selenium+webdriver 脚本语言为:Python3.X 浏览器:Chrome 系统环境:Win10 编译工具:Pycharm ...

  9. caffe.bin用法

    $ ./build/tools/caffe.bin caffe.bin: command line brew usage: caffe <command><aegs> comm ...

  10. 如何在Go中获得 "A1","B2" 类似字符+数字的字符串

    package main import ( "fmt" ) func main() { // 字符串 str := "ABCDEFGHIJKLMNOPQRSTUVWXYZ ...