美文网首页
并发、并行、串行

并发、并行、串行

作者: 一叶知秋0830 | 来源:发表于2019-08-20 12:43 被阅读0次

并发

  在讲并发之前,我们先要了解“核”的概念,我们经常会听到别人说我的电脑是双核的或者是4核的,核数越多电脑性能越好。这里说的核就是指CPU,一个CPU同一时刻只能执行一个任务,这一点非常重要。
  我们这里就用单核来讲解并发的概念。早期的电脑都是单核的,按照前面所说,单核电脑同一时刻只能执行一个任务,但我们仔细回想一下,真的是这样吗?比如我用迅雷同时下载电影A和电影B,是不是要等电影A的下载进度条走完了才开始下载电影B呢?并非如此,我们看到电影A和电影B的下载进度条同时在走动,那这又是怎么回事呢?实际上,当CPU同时接到2个任务时,CPU会将执行过程分割成很多个时间片段,并按照一定的策略在不同的时间片段分配执行不同的任务,比如在0-10ms执行电影A的下载任务,10-20ms时将任务A挂起并开始执行任务B,20-30ms时将任务B挂起并接着执行任务A,如此循环交替执行2个下载任务。由于多个任务交替的速度非常快,给我们的感觉就是在同时执行。这就是并发,其实就是多个任务在一个时间段内竞争CPU资源。

并行

  并发和并行是两个相似又有区别的概念。并行是指同一时刻有多个任务在同时进行,按照前面所说一个CPU同一时刻只能执行一个任务,所以要实现并行至少需要有2个CPU。比如双核电脑同时接到任务A和任务B,任务A被分配到CPU1上执行,任务B被分配到CPU2上执行,这就是并行,2个任务间不需要竞争CPU资源。当然,如果2个任务都被分配到了CPU1上,那这是并发而不是并行(哪个任务分配到哪个CPU上执行是系统决定,人为无法控制,所以即便是多核处理器,我们写的多线程可能是并发也可能是并行)。

串行

  串行是和并行相对的。不管并发还是并行,虽然CPU资源分配机制不一样,但给人的感觉上多个任务都是同时在执行的。而串行不一样,当有多个任务串行执行时只能一个个排队执行,当一个任务完全执行完成后才能执行下一个任务。

相关文章

  • java多线程(核心篇)第二章

    第二章 2.1 串行、并发与并行 并行可以被看作并发的一个特例。因此,并发往往是带有部分串行的并发,而并发的极致就...

  • 01-并发概述

    并发编程由来: 串行与并行 并发编程目的 并发编程的场景

  • 并发、并行、串行

    并发   在讲并发之前,我们先要了解“核”的概念,我们经常会听到别人说我的电脑是双核的或者是4核的,核数越多电脑性...

  • 串行、并行、并发

    1. 串行 串行,是指一次只能取得一个任务并执行这一个任务。 2. 并行 并行,是指两个或者多个事件在同一时刻发生...

  • 串行、并行、并发

    串行 一个任务执行完在执行下一个任务。 比如先吃饭,吃完了去打游戏。串行就是简单地one by one的思路。 并...

  • jvm总结

    讲jvm之前先明确下串行、并行、并发的区别: 并行(Parallel): 必须多核支持 并发 (Concurren...

  • iOS 多线程技术总结

    概览 进程与线程的概念 多线程的由来 并行与并发 多线程的实现 串行与并行 线程的几种状态 串行队列与并发队列区别...

  • ObjC-多线程之GCD

    介绍 基本概念 串行和并行 并发和并行 下图描述的就是并发和并行的区别。 同步和异步 函数说明 Dispatch ...

  • 串行(Sequential)、并发(Concurrent)、并行

    串行(Sequential)、并发(Concurrent)、并行(parallel)与分布式(distribute...

  • 串行,并行,并发理解

    一个例子解决 : 洗衣做饭 假设你需要洗衣服和做饭(两个任务) 串行 : 先洗衣服,洗完后再做饭。(或者先做饭,做...

网友评论

      本文标题:并发、并行、串行

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