iOS进阶不易的地方iosiOS

iOS编程串行并行并发,同步异步阻塞非阻塞的区别

2015-08-26  本文已影响4558人  大饼炒鸡蛋

之前一直没有搞懂这两个的区别,现在的理解是:

进程:一个可执行的程序

任务:一块可执行的代码

线程:指的是一个独立的代码执行路径,线程是代码执行路径的最小分支

串行和并行:串行是一次只能执行一个任务,并行是一次能执行多个任务

并行是CPU的多核芯同时执行多个任务  并发是单核CPU交替执行两个任务

///

2016 2 18 修改以上对同步异步的理解

同步异步关注的是消息通讯机制

所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。注意这个返回是指CUP返回执行的数据段部分,所以目前来看只是阻塞了CPU的数据段部分 并不耽误CPU干别的 所以即使是同步也不见得是阻塞模式

换句话说,就是由*调用者*主动等待这个*调用*的结果。

而异步则是相反,*调用*在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在*调用*发出后,*被调用者*通过状态、通知来通知调用者,或通过回调函数处理这个调用。

典型的异步编程模型比如Node.js

参考地址:

http://www.zhihu.com/question/19732473

上一篇 下一篇

猜你喜欢

热点阅读