代码描述:js阻塞IO事件循环。js阻塞IO事件循环简单介绍
首先,IO操作无疑是耗时的,当服务器端接收到大量请求时,为每一个请求创建进程或线程的同时,也增加了额外的内存开销,也可能浪费更多的时间资源。由于Node.js是事件驱动的,于是它使用了事件循环来解决IO操作带来的瓶颈问题。在Node.js中,一个IO操作通常会带有一个回调函数,当IO操作完成并返回时,就会调用这个回调函数,而主线程则继续执行接下来的代码。 简单的用一个例子来说明这个问题:
<script> request('https://www.51qianduan.com', function(error, response, body) { console.log(body); }); console.log('Done!'); </script>
这段代码的意思是向'https://www.51qianduan.com'发出请求,当请求返回这则调用回调函数输出响应信息。由于Node.js的运行机制,这段代码运行后,会立即在控制台输出'Done!',然后一段时间后再输出响应的信息。 事件循环event loop: 接下来,来讨论下事件循环的机制。首先说说调用桟,比如有如下一段代码:
<script> function A(arg, func){ var a = arg; func(); console.log('A'); } function B(){ console.log('B'); } A(0, B); </script>
请绑定手机号,在继续操作
注意:只有绑定手机以后,才可使用网站全部功能