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







网友评论