多进程
import multiprocessing
from multiprocessing import process //导入包
操作和多线程一样
p=process(target=fun,args=(1,) )
p.start()
多进程队列Queue
from multiprocessing import process ,Queue
可以进行进程间的通信, 实际上是父进程克隆一个q交给子进程
Pipes
from multiprocessing import process ,Queue,Pipes
生成两个进程,可以进程间通信
parent,child=Pipes()
parent.recv()
child.send()
Manager
from multiprocessing import process ,Queue,Pipes,Manager
with Manager () as manger
用manager生成的列表 字典等 线程之间是可以同步的
l=manager.list()
d=manager.dict()
l,d在不同进程间是共享同步,且不需要自己加锁
进程锁
from multiprocessing import process ,Queue,Pipes,Manager,Lock
和多线程操作一样
acquire release
进程池
from multiprocessing import process ,Queue,Pipes,Manager,Lock,Pool
pool=Pool(5)
pool.apply(target=fun,arges=(1,)) 串行
pool.apply_async(target=fun,arges=(1,)) 并行
pool.apply_async(target=fun,arges=(1,),callback=fun2 ) callback 回掉 进程中fun执行完成执行fun2