JavaScript单线程以及同步异步的理解

Javascript语言的执行环境是”单线程”(single thread)。

所谓”单线程”,就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。

这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法执行。

为了解决这个问题,Javascript语言将任务的执行模式分成两种:同步(Synchronous)和异步(Asynchronous)。

“同步模式”就是上一段的模式,后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的;”异步模式”则完全不同,每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 你拍着胸脯说没问题,看到结果时我眼泪差点流下来 生活中,有一些朋友,他们在某一方面总能给我们很靠谱的感觉 记不住的...
    牧羊Max阅读 250评论 0 0
  • 大家对纸这种东西应该不陌生吧,平常画画啊,做作业啊,记录事情啊,稿纸都是我们最好的帮手。虽然纸在生活中与你形...
    准备摇滚阅读 249评论 0 0
  • TensorFlow Debugger(tfdbg),TensorFlow专用调试器。用断点、计算机图形化展现实时...
    利炳根阅读 1,198评论 0 2
  • 今年以来很少跑步,因为通过去年一年来的经历,包括汉马,我已充分感受到跑步的乐趣和我自身存在的身体极限,如果说追求极...
    大泥沙阅读 245评论 8 1