进程池:

multiprocessing模块中有一个类Pool,这个类相当于一个池,专门存放进程。在Pool的__init__中可以传递一个参数用于指定同一时刻最多有多少个进程,并且在使用进程池的时候,父进程不会等待子进程是否执行完毕后再退出,父进程的代码执行完毕之后直接退出。

如果让子进程随意的创建会非常消耗资源,因为子进程所需要的资源就是父进程所需要的资源,所有通过进程池可以控制同一时刻子进程数量,让程序更加高效。

从现象中可以看出一次最多就执行3个子进程

Apply方法:

如果只使用apply方法,同一时刻只能执行一个进程,如果是apply_async方法的话可以同时执行多个进程,即异步

Join方法:

不是利用进程池运行的进程会等待子进程运行结束之后在结束主进程,但是使用进程池的时候不会,join方法用于阻塞主进程,等待所有子进程运行完毕之后再结束主进程