串行,并行,并发

    这边我们假设出3个事件A、B、C用于下面的举例说明。

一、串行

    在串行的概念中会有两个概念:

  • 串行(serial)与并行(parallel)相对应,是指的我们从事某项工作时一个步骤一个步骤的去实施。
  • 指串行通信。串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。

     当中通信中串行和并行的话,又存在多路复用情况。
    多路复用是指以同一传输媒质(线路)承载多路信号进行通信的方式。各路信号在送往传输媒质以前,需按一定的规则进行调制,以利于各路已调信号在媒质中传输,并不致混淆,从而在传到对方时使信号具有足够能量,且可用反调制的方法加以区分、恢复成原信号。多路复用常用的方法有频分多路复用和时分多路复用,码分多路复用的应用也在不断扩大。
在这里插入图片描述
    系统分配一个线程,一步一步的执行事件A、B、C。

优点:由于任务,函数都在一个线程执行所以不存在线程不安全情况,也就不存在临界区的问题。
缺点:不能很好的利用cpu(当代多核心,多cpu硬件情况)的资源提高处理优势。

二、并发

    并发当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)。
在这里插入图片描述
    将事件A分配给了线程1,将事件B分配给了线程2,事件C分配给线程3。但是系统只有一个CPU,所以两个线程不能同时执行。同一时间只能执行一个线程。

三、并行

    当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。
在这里插入图片描述
    我们将事件A分配给线程1,事件B分配给线程2,事件C分配给线程3。因为这时候我们有多个CPU,所以我们可以同时执行。

优点:由于任务,函数是在 N 个线程执行所以速度快,执行效率高CPU(当代多核心,多cpu硬件情况)的利用与也高。
缺点:存在线程不安全情况,也就是存在临界区的问题会出现数据不准确,不安全,脏数据。

    并发和并行是即相似又有区别的两个概念,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可以同时执行。

发布了25 篇原创文章 · 获赞 7 · 访问量 2132

猜你喜欢

转载自blog.csdn.net/qq_41506111/article/details/102836371
今日推荐