python进程池apply与apply_async
apply方法是阻塞的。
意思就是等待当前子进程执行完毕后,在执行下一个进程。
apply_async 是异步非阻塞的。
意思就是:不用等待当前进程执行完毕,随时根据系统调度来进行进程切换。
apply是阻塞式的。
首先主进程开始运行,碰到子进程,操作系统切换到子进程,等待子进程运行结束后,在切换到另外一个子进程,直到所有子进程运行完毕。然后在切换到主进程,运行剩余的部分。
apply_async是异步非阻塞式的。
首先主进程开始运行,碰到子进程后,主进程说:让我先运行个够,等到操作系统进行进程切换的时候,在交给子进程运行。以为我们的程序太短,然而还没等到操作系统进行进程切换,主进程就运行完毕了。
想要子进程执行,就告诉主进程:你等着所有子进程执行完毕后,在运行剩余部分。