python多进程apply与apply_async的区别

为什么会这样呢?

因为进程的切换是操作系统来控制的,抢占式的切换模式。
我们首先运行的是主进程,cpu运行很快啊,这短短的几行代码,完全没有给操作系统进程切换的机会,主进程就运行完毕了,整个程序结束。子进程完全没有机会切换到程序就已经结束了。

apply是阻塞式的。

首先主进程开始运行,碰到子进程,操作系统切换到子进程,等待子进程运行结束后,在切换到另外一个子进程,直到所有子进程运行完毕。然后在切换到主进程,运行剩余的部分。

apply_async是异步非阻塞式的。

首先主进程开始运行,碰到子进程后,主进程说:让我先运行个够,等到操作系统进行进程切换的时候,在交给子进程运行。以为我们的程序太短,然而还没等到操作系统进行进程切换,主进程就运行完毕了。

想要子进程执行,就告诉主进程:你等着所有子进程执行完毕后,在运行剩余部分。

注意:close必须在join前调用。

作者:有点d伤
链接:https://www.jianshu.com/p/0a55507f9d9e
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

python多进程apply与apply_async的区别

上一篇:Nios II——定制自己的IP1之Nios接口类型


下一篇:SQL反模式学习笔记10 取整错误