haizlin / fe-interview

前端面试每日 3+1,以面试题来驱动学习,提倡每日学习与思考,每天进步一点!每天早上5点纯手工发布面试题(死磕自己,愉悦大家),6000+道前端面试题全面覆盖,HTML/CSS/JavaScript/Vue/React/Nodejs/TypeScript/ECMAScritpt/Webpack/Jquery/小程序/软技能……

Home Page:http://www.h-camel.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[软技能] 第154天 请解释下你理解的并行和并发、同步和异步、阻塞和非阻塞之间有什么区别?

haizhilin2013 opened this issue · comments

第154天 请解释下你理解的并行和并发、同步和异步、阻塞和非阻塞之间有什么区别?

并发是一次处理很多事情。
并行是同时做很多事情。
同步轮询查询结果。
异步等有结果后会通知进而执行下一步。
阻塞等待结果的时候不能去处理别的。
非阻塞等待结果的时候能去处理别的。

commented

并发并行是处理任务的方式。并发是在一个时间段可以处理多个任务,但是在相同的时间内只能处理一个任务。并行是同时可以处理多个任务。
同步异步是处理运行结果的方式,同步是在上一个返回结果还没返回的时候就不进行下一步的调用,异步是上一个结果还没返回就继续执行下一步,直到有返回结果了再调用对应的异步回调。
阻塞和非阻塞是运行时的状态。阻塞是在上一个任务还在执行时,下一个任务处于无法执行的状态,需要继续等待,直到上一个任务执行完毕。非阻塞就是任务的执行状态一直是上一个执行了,下一个就继续执行,没有多余的等待时间。