day32 通道 数据共享 进程池
1、管道
格式:
conn1,conn2 = Pipe()
管道的两端可以进行全双工通信 如图
进程2创建了管道,它就拥有管道两端的信息,每个端点都能收发信息,它把端点信息传给进程1和进程3 ,它们之间就能实现相互通信了
只要有通道两个端点的信息就可以实现两个进程之间的通信(前提是这两个进程拥有的端点信息不是同一个端点,同一个端点是不能在两个进程之间进行收和发的,会报错)
2、数据共享
格式:
m = Manager()
dic = m.dict( { "num" : 2 } )
数据共享会有数据安全的问题,使用的时候一般要加锁
3、进程池
格式:
pool =Pool(4) #开的进程数一般是电脑的核心数,几核就来几个
pool.map(task,iterable) #异步提交任务,字典close+join的效果
res = pool.apply(task,args=(,)) #同步提交任务,可以直接返回值
res = pool.apply_async(task,args =(,)) #异步提交任务 ,返回的是一个对象,用get()方法可以从返回对象中取值,使用get()时有阻塞效果,不受到值不往下执行
如果要等异步进程结束可以用pool.close() 和 pool.join() ,close表示的是锁住进程池,不让再往里加任务
#回调函数
进程池异步方法才有的功能
pool.apply_async(task,args=(,),callback =fun)
回调函数在父进程执行,所以才叫回调嘛,子进程回父进程调函数
day32 通道 数据共享 进程池的更多相关文章
- python摸爬滚打之day032 管道 数据共享 进程池
1.进程池 当有成千上万个任务需要被执行的时候,有了进程池我们就不必去创建大量的进程. 首先,创建进程需要消耗时间,销毁进程(空间,变量,文件信息等等的内容)也需要消耗时间, 第二即便开启了成千上万的 ...
- 进程同步控制(锁,信号量,事件), 进程通讯(队列和管道,生产者消费者模型) 数据共享(进程池和mutiprocess.Pool模块)
参考博客 https://www.cnblogs.com/xiao987334176/p/9025072.html#autoid-1-1-0 进程同步(multiprocess.Lock.Semaph ...
- Python开发基础-Day32 进程间通信、进程池、协程
进程间通信 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的. 进程队列queue 不同于线程queue,进程 ...
- python 管道、数据共享、进程池
一.管道(Pipe)(了解) (详情参考:https://www.cnblogs.com/clschao/articles/9629392.html) 进程间通信(IPC)方式二:管道(不推荐使用,了 ...
- Python_生产者消费者模型、管道、数据共享、进程池
1.生产者消费者模型 生产者 —— 生产数据的人 消费者 —— 消费数据的人 生产者消费者模型:供销数据不平衡的现象. import time import random from multiproc ...
- python 全栈开发,Day40(进程间通信(队列和管道),进程间的数据共享Manager,进程池Pool)
昨日内容回顾 进程 multiprocess Process —— 进程 在python中创建一个进程的模块 start daemon 守护进程 join 等待子进程执行结束 锁 Lock acqui ...
- python全栈开发day33-进程间的通信、进程间的数据共享,进程池
一.昨日内容回顾: 1. 守护进程 1).p.saemon, 2 ).p.terminate 3 ).p.join 2. 同步控制 1).锁,Lock 互斥锁,解决数据安全.进程之间资源抢占问题. ...
- 《Python》进程之间的通信(IPC)、进程之间的数据共享、进程池
一.进程间通信---队列和管道(multiprocess.Queue.multiprocess.Pipe) 进程间通信:IPC(inter-Process Communication) 1.队列 概念 ...
- 进程、数据共享、进程锁、进程池、requests模块和bs4(beautifulsoup)模块
一.进程 1.进程间数据不共享,如下示例: import multiprocessing data_list = [] def task(arg): data_list.append(arg) pri ...
随机推荐
- 102. Binary Tree Level Order Traversal 广度优先遍历
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...
- 【无法使用yum安装软件】使用yum命令安装软件提示No package numactl.x86_64 available.
在安装mysql时需要安装numactl.x86_64 使用yum -y install numactl.x86_64时报错 [root@sdp6 mysql]# yum -y install num ...
- fastqc
fastqc用于查看测序数据的质量. 1.下载: http://www.bioinformatics.babraham.ac.uk/projects/download.html#fastqc wget ...
- POJ3580 SuperMemo
Your friend, Jackson is invited to a TV show called SuperMemo in which the participant is told to pl ...
- (转)PaperWeekly 第二十二期---Image Caption任务综述
本文转自:http://mp.weixin.qq.com/s?__biz=MzIwMTc4ODE0Mw==&mid=2247484014&idx=1&sn=4a053986f5 ...
- [echarts] - echarts量化比较图表类型解析
https://echarts.baidu.com/examples/editor.html?c=watermark <!DOCTYPE html> <!--用作两种货品的参数对比- ...
- Java基础【基本数据类型包装类、int与String 之间的相互转换】
为什么会有基本类型包装类? 将基本类型数据类型封装成对象,这样的好处可以在对象中定义更多方法操作该数据. 包装类常用的操作就是用于基本数据类型与字符串之间的转换 问题:int a=100; 为什么不能 ...
- --HTML标签2
表单元素: <input>标签 搜集用户信息 属性:type=" " text 默认值 size 长度 value 规定值 readonly 规定值 placehold ...
- Gym 101617J Treasure Map(bfs暴力)
http://codeforces.com/gym/101617/attachments 题意:给出一个图,每个顶点代表一个金矿,每个金矿有g和d两个值,g代表金矿初始的金子量,d是该金矿每天的金子量 ...
- Shell中的IFS
一.IFS 介绍 Shell 脚本中有个变量叫 IFS(Internal Field Seprator) ,内部域分隔符.完整定义是The shell uses the value stored in ...