zoukankan      html  css  js  c++  java
  • python多进程apply与apply_async的区别

    为什么会这样呢?

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

    apply是阻塞式的。

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

    apply_async是异步非阻塞式的。

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

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

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

    作者:有点d伤
    链接:https://www.jianshu.com/p/0a55507f9d9e
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    mysql 存储结构
    Mysql 创建表
    java 定时任务
    SpringBoot
    Spring : Spring初识(二)
    hadoop
    JAVA学习路线图
    redis缓存和cookie实现Session共享
    说说 JAVA 代理模式
    Spring 学习教程(五):快速入门
  • 原文地址:https://www.cnblogs.com/luyanru66/p/9380713.html
Copyright © 2011-2022 走看看