如果Node JS也在libuv中使用I / O线程来执行IO,那么当它收到简单I / O请求时,该线程与IIS创建的线程有何不同?
答案 0 :(得分:2)
Node.js不为I / O使用单独的线程。它在多个任务之间复用单个线程。
在高级别,I / O分为2:n / w IO和光盘IO。虽然前者在内核级别具有缓冲机制,但node.js在完全异步模型中管理IO - 这意味着当内核缓冲区完全准备好以完全非阻塞模式回应操作时,将处理数据。 Disc IO仍然涉及阻塞序列,因此ndoe.js使用libuv工作线程来模拟异步IO。无论哪种方式,任何地方都没有阻止代码。
libuv线程是预先创建并修复的,所以使用它们没有运行时开销。
希望这有帮助。