-
并发
:一个处理器同时处理多个任务,在多个任务间快速切换,实现多任务同时运行的效果。称为并发
-
并行
:多个任务同时进行,且每个任务单独由一个处理器支持,实现了多个任务的同时
进行,称为并发
。
同步
与异步
:首先这两个词是形容词
,意思是同步的
,异步的
。
他们修饰的名称是函数
,方法
,任务
[ 不同的语言有不同的叫法
]
完整的理解就是同步的方法
与异步的方法
。
-
同步
:执行任务时候等结果返回后
再进行下一步,就称他们是同步的。同步也是面向过程的基础,当我们执行任务有明显的依赖关系,就必须使用同步。
[我们平时的代码大部分都是同步,调用函数1的返回结果,传入函数2,再等待函数2执行完毕后,执行……
] -
异步
:异步是指我们执行任务后,不等待任务
的执行结果,立即执行下一步。
打枪的时候,你会等待第一发子弹执行完毕再打第二枪吗?
我们不是姜文,不必等待"让子弹飞一会"
,一枪打出去,不用等待结果,接着开枪就是了
。
异步一般用于与IO
操作有关的地方。
例如在前端加载页面的时候,该页面有100
张图片,我们不必等待确认第一张
加载完成后,再去执行第二张。而是直接发出100个
异步请求。
阻塞
:阻塞调用
是指调用结果返回之前,当前线程
会被挂起(线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行)。函数只有在得到结果之后才会返回。
非阻塞
:非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
网友评论