美文网首页
多进程、多线程、协程、并发并行

多进程、多线程、协程、并发并行

作者: Manchangdx | 来源:发表于2018-11-13 20:15 被阅读0次

    进程:每个人都领一套工具(环境,上下文)去干活,人多(核多)就可以做得更快。

    线程:一个人领一套工具后干活,但要干很多工作,先干哪个要听老板的(系统),遇见要等待的事情,老板会叫你先干别的。但老板不懂你干的活,比如你挖一个坑放一个萝卜盖土,结果他让你挖坑,盖土,放萝卜。这时候就要用锁告诉老板这个必须先放了萝卜才能埋土。

    协程:一个人领一套工具后干活,但要干很多工作,先干哪个要听自己的,同样遇见要等待的事情,你会自主地先干别的。对于老板来说,协程内的工作属于一个包的事,他会下命令让你吃饭,但不会规定先吃哪个菜。正是因为省去了老板这一工作量,才大大提高了公司的效率,毕竟是占用领导的工作量,先洗澡还先吃饭也要问领导不得慢成啥。

    你吃饭吃到一半,电话来了
    你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行

    你吃饭吃到一半,电话来了
    你停了下来接了电话,接完后继续吃饭,这说明你支持并发

    你吃饭吃到一半,电话来了
    你一边打电话一边吃饭,这说明你支持并行

    并发关乎结构,并行关乎执行

    线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位

    线程是进程中代码的不同执行路线

    进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间 (包括代码段、数据集、堆等) 及一些进程级的资源 (如打开文件和信号),某进程内的线程在其它进程不可见

    调度和切换:线程上下文切换比进程上下文切换要快得多

    驹说码事 深入理解Python异步编程(上)
    伯乐在线 Python 3.5 协程究竟是个啥
    伯乐在线 以操作系统的角度述说线程与进程
    知乎 谈谈 Python 协程技术的演进
    cenalulu Python 的 GIL 是什么鬼,多线程性能究竟如何
    segmentfault 一起了解什么是高并发
    简书 Python yield from 用法详解
    Tony Bai 也谈并发与并行

    相关文章

      网友评论

          本文标题:多进程、多线程、协程、并发并行

          本文链接:https://www.haomeiwen.com/subject/byfrfqtx.html