使用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. 《深入理解Java虚拟机》读书笔记三

    第四章 虚拟机性能监控与故障处理工具 1.JDK命令行工具 jps命令: 作用:列出正在运行的虚拟机进程. 格式:jps [option] [hostid] 选项:-q 只输出LVMID(Local ...

  2. EF CodeFirst关于Mysql如何自动生成数据库表

    相对于sqlserver数据库,mysql的配置过程相对麻烦一些,我们从0讲起. 1.新建一个控制台应用程序 右键点击引用--管理NuGet程序包,搜索Mysql.Data.Entity并安装,安装完 ...

  3. java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!

    问题描述 java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based! 红色部分报错 for ( ...

  4. 【转载】Java嵌入Pig编程

    转自:https://wiki.apache.org/pig/EmbeddedPig Embedding Pig In Java Programs Sometimes you want more co ...

  5. 怎样判断一个exe可执行程序是32位的还是64位的(转)

    转载自:https://blog.csdn.net/qq_23308823/article/details/54898119 怎样判断一个exe可执行程序是32位的还是64位的

  6. 函数match应打印s中从ch1到ch2之间的所有字符,并且返回ch1的地址。

    1 char *match( char *s, char ch1, char ch2 ){ ; ; ; while(s[len]){ len++; } *len+];//防止s字符串全满导致t溢出 * ...

  7. 利用Python数据分析基础

    一.Numpy的ndarray:一种多维数组 ndarray是一个通用的同构多维数据容器,其所有元素必须是相同的类型.每个数组都有一个shape(一个表示各维度的元组)和dtype(一个用于说明数据数 ...

  8. adb+tcpdump手机抓包过程出现的报错及解决方法

    tcpdump下载:https://www.androidtcpdump.com/android-tcpdump/downloads 1.夜神模拟器连接不上adb D:1手机木马取证\android- ...

  9. C++-POJ1988-Cube Stacking[数据结构][并查集]

    int find(int x){return fa[x]==x?x:fa[x]=find(fa[x]);} #include <set> #include <map> #inc ...

  10. JQuery/JS插件 jsTree加载树,普通加载,点一级加载一级

    前端: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <tit ...