0

我已经阅读了一些关于 nodejs 的介绍文章,这似乎是一种创建 webapps 的有趣方式。但是,我不确定我是否理解“只有一个线程”和“事件循环”,所以我希望有人可以为我澄清。

可以说我有一个函数“computeBigNumbers(数据,回调)”。现在,当发出 http 请求时,我调用此函数并在完成时提供回调。在“computeBigNumbers”函数中,如果我没有专门在子进程中运行代码或启动 Web 工作线程,它会是异步的吗?我想没有。正确的?

4

1 回答 1

1

在“computeBigNumbers”函数中,如果我没有专门在子进程中运行代码或启动 Web 工作线程,它会是异步的吗?

...或调用另一个异步函数。

但是,是的,node.js 中只有一个线程,您有责任不阻塞它(通过使耗时的任务显式异步)。

I/O 适合回调,但如果您有一个 CPU 密集型操作,那么您可能需要将其分配给 web worker 或子进程。Javascript 中的密集循环或对 C 函数的同步调用将使整个服务器等待您。

于 2013-01-24T07:38:38.640 回答