星海

Node.js 与全栈 · 单选题 · 第 65 题

前端与全栈开发面试 · 第 65 题

关于 Node.js 适合的场景,下列说法正确的是?

  1. A适合 IO 密集型的高并发服务;CPU 密集型计算会阻塞事件循环,应放到 worker_threads 中
  2. B最适合 CPU 密集型计算,因为每个请求都会自动分配一个独立的系统线程来处理执行
  3. CNode.js 中的 JavaScript 代码默认在多个线程上并行执行,所以不存在阻塞事件循环的问题
  4. DNode.js 不支持任何形式的多线程或多进程,所以只能部署在单核服务器上运行业务

答案

A A. 适合 IO 密集型的高并发服务;CPU 密集型计算会阻塞事件循环,应放到 worker_threads 中

解析

Node 的 JS 主线程是单线程的,IO 由 libuv 异步完成,所以少量线程就能撑起大量并发连接。一段耗时的同步计算会卡住所有请求,可以拆分任务、交给 worker_threads,或者用 cluster、PM2 开多个进程利用多核。libuv 的线程池负责文件 IO、DNS 查询、加密运算等工作。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。