同步 ,异步,并发/并行,串行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同步 ,异步,并发/并行,串行相关的知识,希望对你有一定的参考价值。

 

同步:多个任务情况下,一个任务A执行结束,才可以执行另一个任务B。只存在一个线程。

异步:多个任务情况下,一个任务A正在执行,同时可以执行另一个任务B。任务B不用等待任务A结束才执行。存在多条线程。

技术分享

技术分享

接下来分析一下并行/并发,串行。很多人大概会混淆这些概念。

技术分享

技术分享

并发和并行其实是异步队列实现的两种形式。并行其实是真正的异步,多核CUP可以同时开启多条线程供多个任务同时执行,互补干扰,如上图的并行,其实和异步图例一样。但是并发就不一样了,是一个伪异步。在单核CUP中只能有一条线程,但是又想执行多个任务。这个时候,只能在一条线程上不停的切换任务,比如任务A执行了20%,任务A停下里,线程让给任务B,任务执行了30%停下,再让任务A执行。这样我们用的时候,由于CUP处理速度快,你看起来好像是同时执行,其实不是的,同一时间只会执行单个任务。

那么串行是什么呢,它是同步的实现方式,就是任务A执行结束才能开始执行B,单个线程只能执行一个任务,就如单行道只能行驶一辆车。

恩,到这里大家应该可以理解同步,异步,并行/并发,串行的概念了把~技术分享

以上是关于同步 ,异步,并发/并行,串行的主要内容,如果未能解决你的问题,请参考以下文章

并发并行串行同步异步阻塞非阻塞

帮你快速理解同步 ,异步,并发/并行,串行

进程线程进程池进程三态同步异步并发并行串行

GCD使用 串行并行队列 与 同步异步执行的各种组合 及要点分析

iOS面试系列-2多线程中同步异步和串行并行之间的逻辑关系(必考,必须掌握)

并发编程 - 总结