线程中同步、异步、串行、并行

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/l540675759/article/details/62932901

本文出自博客Vander丶CSDN博客,如需转载请标明出处,尊重原创谢谢

博客地址:http://blog.csdn.net/l540675759/article/details/62932901

从线程的时效来看,分别同步和异步

同步:就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,程序也不会接着往下执行。按照这个定义,其实绝大多数函数都是同步调用。

异步:当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调(Handler机制)来通知调用者。

下面举两个同步、异步的例子:
主题:周末在家看电视,然后想烧一壶水。
同步处理:
同步处理
异步处理:
异步处理


从线程的执行来看,线程队列分为串行队列和并行队列

串行队列:串行队列的特点是队列内的线程是一个一个执行,直到结束。

并行队列:并行队列的特点是队列中所有线程的执行结束时必须是一块的,队列中其他线程执行完毕后,会阻塞当前线程等待队列中其他线程执行,然后一块执行完毕。

了解完同步、异步的概念后,经过和串行、并行组合分为四种状态:
这里引用Love@YR作者的串行,并行的博文几张图,让大家加深理解

这里写图片描述

(1)串行同步
图1是串行同步的情况,队列中的线程依次执行,并且主线程阻塞,等待任务的完成。

(2)串行异步
图2是串行异步的情况,队列中的线程依次执行,同时主线程还在继续执行。

(3)并行同步
图3是并行同步的情况,队列中的线程,会一起执行,但是同一时段只能有一个线程执行其他线程等待,等所有任务执行完,主线程继续执行。

(4)并行异步
图4是并行异步的情况,队列中的线程,一起执行,主线程也会继续执行。

由上图可以发现,串行和并行最大的不同的就是执行上,串行是依次执行,只有当前线程结束之后,另一个线程才开启。而并行是所有任务一起执行,执行的表现形式不同。

猜你喜欢

转载自blog.csdn.net/l540675759/article/details/62932901