I/O 密集型与 CPU 密集型

Jav*_*mer 4 node.js

我读了以下教程 -

https://www.tutorialspoint.com/nodejs/nodejs_introduction.htm

Node.js 仅适用于 I/O 密集型应用程序,而不建议用于 CPU 密集型应用程序。

  1. I/O 密集型与 CPU 密集型之间有什么区别?
  2. 为什么 Node.js 不是 CPU 密集型应用的更好选择?

谢谢

tka*_*usl 5

I/O 密集型与 CPU 密集型之间有什么区别?

I/O 限制意味着给定任务经常等待 I/O。例如,与 CPU 相比,网络、文件 io 等速度较慢。当 CPU 必须定期等待数据到达时,该任务被称为 I/O 密集型任务。

CPU 密集型则相反,CPU 必须执行大量工作、计算数据,而不需要等待新数据到达。它可以继续下去。

为什么 Node.js 不是 CPU 密集型应用的更好选择?

与其他选择相比,Node.js 速度较慢,这使得它不太适合 CPU 密集型任务。然而,它的异步特性使其非常适合 I/O 密集型任务,因为它可以在等待数据异步到达时继续执行其他工作,这在其他语言中更难以实现。