美文网首页
理解串行,并行和并发

理解串行,并行和并发

作者: 爱好学习的猫 | 来源:发表于2020-02-06 21:26 被阅读0次

串行

多个任务,执行时一个执行完再执行另一个。

比喻:吃完饭再看视频。

并发

多个线程在单个核心运行,同一时间一个线程运行,系统不停切换线程,看起来像同时运行,实际上是线程不停切换。

比喻: 一会跑去厨房吃饭,一会跑去客厅看视频。

并行

每个线程分配给独立的核心,线程同时运行。

比喻:一边吃饭一边看视频。

在单CPU系统中,系统调度在某一时刻只能让一个线程运行,虽然这种调试机制有多种形式(大多数是时间片轮巡为主),但无论如何,要通过不断切换需要运行的线程让其运行的方式就叫并发(concurrent)。而在多CPU系统中,可以让两个以上的线程同时运行,这种可以同时让两个以上线程同时运行的方式叫做并行(parallel)。

并发是有状态的,“具有可论证的确定性,但是实际上具有不可确定性”;"并发"在微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行,从宏观外来看,好像是这些进程都在执行。使用多个线程可以帮助我们在单个处理系统中实现更高的吞吐量,如果一个程序是单线程的,这个处理器在等待一个同步I/O操作完成的时候,他仍然是空闲的。在多线程系统中,当一个线程等待I/O的同时,其他的线程也可以执行。

异步与多线程异步和多线程并不是一个同等关系,异步是最终目的,多线程只是我们实现异步的一种手段。异步是当一个调用请求发送给被调用者,而调用者不用等待其结果的返回而可以做其它的事情。实现异步可以采用多线程技术或则交给另外的进程来处理。

异步和同步的区别, 在io等待的时候,同步不会切走,浪费了时间。

多线程的好处,比较容易的实现了 异步切换的思想, 因为异步的程序很难写的。多线程本身程还是以同步完成,但是应该说比效率是比不上异步的。 而且多线很容易写, 相对效率也高。

多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等同的概念。但是,多线程和异步操作还是有一些区别的。而这些区别造成了使用多线程和异步操作的时机的区别。

异步操作的本质: 所有的程序最终都会由计算机硬件来执行,所以为了更好的理解异步操作的本质,我们有必要了解一下它的硬件基础。 熟悉电脑硬件的朋友肯定对DMA这个词不陌生,硬盘、光驱的技术规格中都有明确DMA的模式指标,其实网卡、声卡、显卡也是有DMA功能的。DMA就是直接内存访问的意思

相关文章

  • 理解串行,并行和并发

    串行 多个任务,执行时一个执行完再执行另一个。 比喻:吃完饭再看视频。 并发 多个线程在单个核心运行,同一时间一个...

  • 串行,并行,并发理解

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

  • 并行和并发

    我已经理解了并发和并行的区别 总结并行和串行:•串行:一次只能取得一个任务并执行这一个任务•并行:可以同时通过多进...

  • ObjC-多线程之GCD

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

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

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

  • 01-并发概述

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

  • 并发、并行、串行

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

  • 串行、并行、并发

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

  • 串行、并行、并发

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

  • 从串行到并行,从并行到分布式

    问题:串行(Sequential)、并行(parallel)、并发(Concurrent)和分布式(distrib...

网友评论

      本文标题:理解串行,并行和并发

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