Node.js - JavaScript的哪些功能完全阻止了一个进程?

时间:2012-02-09 07:04:34

标签: node.js nonblocking

我正在尝试理解Node.js中Event循环的体系结构。我遇到了一个服务器与setTimeout()和一个sleep()by while子句之间的并排比较。 setTimeout()是异步处理的,但sleep()不是。 http://www.atmarkit.co.jp/fcoding/articles/websocket/01/websocket01a.html(日文)

我有点理解这一点。但是,我想出了一个问题,'我怎样才能找到哪个阻止一个进程,哪个不通过读取源'。你是如何确定的?

1 个答案:

答案 0 :(得分:1)

  1. 查看函数签名:如果它是var result = calculateData(parameters)而不是阻塞(btw 节点块io处理循环中的每个函数,但大多数函数只是排队io请求并退出)
  2. 测量函数执行时间,'非阻塞'函数执行时间应该比调用结果回调的时间要小。
  3.  var start = new Date();
     doesItBlock(function(err, result) {
         console.log('doesItBlock callback called after ' + (new Date - start));
     });
     console.log('doesItBlock exited after ' + (new Date - start));