码迷,mamicode.com
首页 > 其他好文 > 详细

并发、并行、同步和异步

时间:2020-02-16 14:44:12      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:共享   数据   算法   运行   最大数   一件事   时间片轮转   计算   python   

并发、并行、同步和异步

在学习线程和进程后,对于并行、并发、同步和异步这几个概念我们需要更深层次的了解一下。

  • 串行:同一个时间段只干一件事

  • 并行:同一个时间段可以干多件事

  • 并发 vs 并行

    • 并发是指一个时间段内,有几个程序在用一个CPU上运行,但是任意时刻只有一个程序在CPU上运行。(时间片轮转调度算法)

    • 并行是指任意时刻点上,有多个程序同时运行在多个CPU上,即每个CPU独立运行一段程序。

    • 并行的最大数量和CPU的数量是一致的。

  • 同步 vs异步:

    • 同步是指代码调用IO操作时,必须等待IO操作完成返回才调用的方式
    • 异步是指代码调用IO操作时,不必等待IO操作完成返回才调用的方式
  • 多线程:交替执行,另一种意义上的串行(python底层解释器原因)

  • 多进程:并行执行,真正意义上的并行

  • 多进程 VS 多线程:
    • 由于全局解释器GIL的存在,python的多线程无法利用多核的优势,所以不适合计算密集型任务,适合IO密集型任务。
    • CPU密集型任务适合和使用多进程
    • 进程切换代价要高于线程
    • 线程之间可以共享全局变量,但是进程不行。进程之间数据完全隔离

并发、并行、同步和异步

标签:共享   数据   算法   运行   最大数   一件事   时间片轮转   计算   python   

原文地址:https://www.cnblogs.com/magicdata/p/12316639.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!