同步/异步 串行/并行 引起的思考

一 背景

有天晚上我作为ios工程师的gf突然问我,同步串行队列和异步串行队列有什么区别?作为代码人这些概念我们平时都是觉得是基本问题,但是在回复的时候 我突然觉得有点不太对..

二 知识介绍

2.1 何为同步?

同步我的理解就是任务执行有依赖关系,从结果角度说,这些任务是前后有序的执行结果。

2.2 何为异步?

异步我理解就是任务执行没有依赖关系,从结果角度说,这些任务的执行是无序的。

2.3 何为串行?

串行我的理解就是在多任务在执行过程中 任务是像串起来一样,一个一个任务串起来执行

2.4 何为并行?

并行我的理解就是在多任务的执行过程中 任务是可以同时执行的。

三 区别何在?

其实我认为同步/异步 串行/并行 是对同一个事情 不同的描述角度,同步和串行 描述的都是一个事情,前一个任务执行完毕 后续一个任务才能执行,串行是任务的调度过程 而同步是串行的结果,同理异步/并行 也是一样

四 回到原来的问题,ios 的同步串行队列,和异步串行队列何解?

原来描述的是 ios 的dispatch_sync和 dispatch_async 对应相对概念,同步/异步是ios主队列和执行队列之间调度情况,串行/并行 是执行队列内部任务调度的情况。。。

五 总结

我认为串行/并行的调度方式导致了同步/异步结果的产生

你可能感兴趣的:(同步/异步 串行/并行 引起的思考)