美文网首页
JS同步和异步

JS同步和异步

作者: 輪徊傷 | 来源:发表于2021-04-23 17:48 被阅读0次

在了解JS同步异步前,我们应该先了解一下,为什么JavaScript是单线程语言。

单线程的概念

因为JavaScript是一门 单线程 的语言,所以JavaScript在同一个时间只能做一件事,单线程意味着,如果在同一时间有多个任务的话,这些任务就需要进行排队,前一个任务执行完,才会执行下一个任务。

为什么JavaScript是单线程?

问题:单线程必须等前面的任务执行玩才能执行后面的任务,那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。

JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?

所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心特征,将来也不会改变。

为了利用多核CPU的计算能力,HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得操作DOM。所以,这个新标准并没有改变JavaScript单线程的本质。

相关文章

  • JS 函数的执行时机

    1.同步和异步的区别 我们都知道JS里面有同步和异步的区别,怎么理解同步和异步呢。一家餐厅吧来了5个客人,同步的意...

  • 【Node.js】读取文件

    在node.js里,读取文件分为 同步读取 和 异步读取。 同步读取: fs.readFileSync() 异步读...

  • 【Node.js】写入文件

    node.js的写入文件和读取文件一样,都是分为同步和异步。 同步写入:fs.writeFileSync() 异步...

  • 简述JS执行机制 Event Loop

    1.同步异步 JS是单线程的,由上至下排队执行任务代码。为了提高JS的性能又区分为 同步任务 和 异步任务。同步任...

  • 异步请求为什么会导致tcp的对头阻塞

    这个异步指的是网络请求不会阻塞其后 js 代码继续执行和浏览器渲染页面其他的部分。 同步和异步 同步和异步关注的是...

  • 同步和异步的理解

    但是js又分为同步和异步,那这里的异步和同步我们应该如何理解呢其实同步和异步,无论如何,做事情的时候都是只有一条流...

  • 【Node.js】删除文件(基础用法)

    node.js删除文件是分为同步和异步。 同步删除文件: fs.unlinkSync() 异步删除文件: fs.u...

  • js同步和异步

    参考1 vue js 实例 结果 f4 f3 f1 f2 setTimeout 是异步的,time == 0 也一样

  • JS同步和异步

    最基础的异步是setTimeout和setInterval函数很常见,但是很少人有人知道其实这就是异步,因为它们可...

  • JS同步和异步

网友评论

      本文标题:JS同步和异步

      本文链接:https://www.haomeiwen.com/subject/ouocrltx.html