• Python并发编程之多进程(理论)


    一、什么是进程

    进程:正在内存中运行的一道程序。

    二、进程与程序的区别

    程序指的是一堆代码,而进程指的是程序运行的过程。

    通一个程序执行两次,就是两道进程。

    三、并发与并行

    并发:伪并行,看起来是同时运行,其实是CPU不断切换的结果。用单个CPU加多道技术就能实现。

    并行:同时运行,CPU的一个核运行一道程序,多核CPU或多个CPU才能实现。

    四、同步异步和阻塞非阻塞(重点)

    同步:在发出一个功能调用时,在没有得到结果之前,该调用就不会返回。换句话说就是由调用者主动等待这个调用的结果。

    异步:和同步相反,调用在发出之后,这个调用就直接返回,不会立刻得到结果,而是等异步功能完成后,被调用者通过状态、通知或回调函数来通知调用者。状态效率低,通知效率高,回调函数和通知没有太多区别。

    阻塞:调用结果返回之前,当前线程会被挂起(IO操作)。调用线程只有在得到结果之后才会返回。和同步不同的是,很多时候同步的当前线程还是激活的,只是从逻辑上当前函数没有返回而已。

    非阻塞:即使没有得到结果,该调用也不会阻塞当前线程。

    小结:同步/异步针对的是函数/任务的调用方式:同步就是当一个进程发起一个函数调用时,一直等到函数完成,但进程还处于激活状态。而异步是当一个进程发起一个函数调用的时候,不会等函数返回,而是去执行下一个任务,函数返回的时候通过状态、通知、回调函数来通知进程完成任务。阻塞和非阻塞是针对进程或线程的,阻塞是当请求不能满足的时候就将进程挂起,非阻塞则不会。

  • 相关阅读:
    JavaScript中的十种操作符
    数据类型即其相互转换
    理解CSS中position的各个值
    理解JavaScript中的this
    理解JavaScript中的回调函数
    hdu-1248-寒冰王座
    ny-71-独木舟上的旅行
    ny-47-过河问题
    ny-14-会场安排问题
    ny-47-喷水装置(一)
  • 原文地址:https://www.cnblogs.com/lshedward/p/10250094.html
Copyright © 2020-2023  润新知