这是一个关于 JavaScript 内部结构的问题。
假设我有 10 个异步任务,全部需要 x 秒才能运行。在等待响应时,脚本处于空闲状态。
JavaScript 引擎在后台询问“任务队列中是否有任何内容”。据我了解,这是一个循环。因此,事件循环。我知道在 Node 中这是用 Libuv 实现的。我读过这篇文章,其中解释了一些:https://nikhilm.github.io/uvbook/basics.html https://nikhilm.github.io/uvbook/basics.html
JavaScript 引擎是否对此事件循环的运行频率施加任何限制,以平衡应用程序的性能?它是否按设定的时间间隔运行?
如果我有什么不对的地方,请纠正我。我纯粹对这个事件循环运行的时间间隔感兴趣。
JavaScript 端本身没有循环。不过 libuv 中有一个。基本上 libuv 会等到最接近的计时器命中或发生 I/O 操作。然后它将在 C 中触发一个回调,该回调调用 Node 传递的 C++ 函数,然后触发 JavaScript 代码执行。
看一下这个演示文稿 http://www.slideshare.net/saghul/libuv-nodejs-and-everything-in-between,特别是从幻灯片 33 开始的部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)