功能:
将要执行的事件放入进程池
参数:
func 要执行的函数
iter 可迭代对象
示例:
进程间的通信(IPC)
由于进程空间独立,资源无法共享,
此时在进程间通讯就需要专门的通讯方法
通信方法:
管道、消息队列、共享内存
信号、信号量、套接字
管道通信:
在内存中开辟一块内存空间,形成管道结构
多个进程使用同一个管道,即可通过对管道的读写操作进行通讯
multiprocessing --> Pipe
fd1,fd2 = Pipe(duplex=True)
功能:创建管道
参数:
默认表示双向管道
如果设置为False则为单向管道
返回值:
俩个管道对象的,分别表示管道的两端
如果是双向管道则均可读写
如果是单向管道则fd1只读,fd2只写
fd.recv()
功能:从管道读取信息
返回值:读取到的内容
当管道为空则阻塞
fd.send(data)
功能:向管道写入内容
参数:要写入的内容
当管道满时会阻塞
可以写入几乎所有Python所有数据类型
队列通信:
在内存中开辟队列结构空间,多个进程可见,
多个进程操作同一个队列对象可以实现消息存取工作
在取出时必须按照存入顺序取出(先进先出)
q = Queue(maxsize=0)
功能:
创建队列对象
参数:
maxsize默认表示根据系统分配空间储存消息
如果传入一个正整数则表示最多存放多少条消息
返回值:队列对象
q.put(data,[block,timeout])
功能:向队列存入消息
参数:
data:存入消息(支持Python数据类型)