同步异步,阻塞非阻塞

发布时间:2020-08-10 15:25:02 作者:山有木xi
来源:ITPUB博客 阅读:145

众所周知JavaScript的执行环境是单线程的,当有多任务时,先执行前面的任务再按顺序狮子那个后面一个,如果前面一个任务耗时很长,那么多所有任务都将拖延,比如经常遇到的浏览器无响应其实就是因为某一段JavaScript代码长时间运行(死循环),导致其他任务无法执行,整个页面无法继续加载造成的,这就是阻塞

为了解决单线程阻塞问题,就出现一种异步编程,典型的异步编程就例如: Node.Js 

同步和异步实际上关注的是消息通信机制

阻塞与非阻塞实际上关注的是程序在等待调用结果时的状态,可能是消息,可能是返回值

这时候,或许对同步异步,阻塞非阻塞有了一个概念,那如果,我们将它们互相组合起来呢?

同步阻塞是最原始最笨的办法,他要一直等着水烧开了。同步非阻塞其实是用到了轮询、IO复用、协程等方法,每隔一段时间去看一下是不是烧开了。异步阻塞是个很“叛逆”的问题,一般很少用到,但是还是有这种情况的。异步非阻塞,那就是用到了回调函数和通知方式。

大胆推测,异步最终会变成某种形式或者状态的同步,也就是消息或者回调,消息是进程间的通信,回调本身就是一种同步,只是采取了快响应,慢处理的策略,推后了同步的时间

推荐阅读:
  1. iOS AFNetWorking下同步异步请求
  2. thinkjs之页面跳转同步异步操作

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

同步 异步 阻塞

上一篇:4、Scala函数式基础

下一篇:深入理解MySQL主从原理专栏 发布

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》