我已经阅读了一些关于nodejs的介绍文章,它似乎是一种创建webapps的有趣方式。但是,我不确定我是否理解“只有一个线程”和“事件循环”,所以我希望有人可以为我澄清。
假设我有一个函数“computeBigNumbers(data,callback)”。现在,当发出http请求时,我调用此函数并在完成时提供回调。 在“computeBigNumbers”函数中,如果我没有在子进程中专门运行代码或启动Web工作线程,它是否会异步?我在想不。正确的吗?
答案 0 :(得分:1)
在“computeBigNumbers”函数中,如果我没有在子进程中专门运行代码或启动Web工作线程,它是否会异步?
...或者调用另一个异步函数。
但是,是的,node.js中只有一个线程,你有责任不阻止它(通过使耗时的任务显式异步)。
I / O适用于回调,但如果你有大量的CPU操作,那么你可能需要将它移植到web worker或子进程。 Javascript中的强烈循环或对C函数的同步调用将使整个服务器等待您。