进程池
进程池与线程的信号量相似,用来控制同一时间活动的最大进程个数。
import time from multiprocessing import Pool def func(i): time.sleep(1) print("process[%d]" %i) return "[%d] callback" %i def callback(*args): print("callback:",args) if __name__ == "__main__": pool = Pool(2) """ 10个进程创建之后有2个进入进程池,其他的进程处于未启动状态 """ for i in range(10): """ apply,串行处理,不管持之有多大一次只有一个进程在运行 apply_async,并行处理 """ """ callback,回调函数,接收进程返回作为参数 """ # pool.apply(func=func,args=(i,)) pool.apply_async(func=func,args=(i,),callback=callback) """ 进程池的join必须在close之后,如果close之后不进行join,那么所有的进程会一并随着主进程结束而结束 """ pool.close() pool.join()