进程间通信选择 Node.js 内置 IPC 还是本地 TCP/Unix Socket,依据是什么?
进程间通信选择 Node.js 内置 IPC 还是本地 TCP/Unix Socket,依据是什么? 本文先给出可直接复述的结论,再用最小代码说明IPC TCP Unix Socket 进程通信 选型的工作方式、判断依据、项目边界和常见误区。
程序员面试题库第 57 页,收录第 2801–2850 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
进程间通信选择 Node.js 内置 IPC 还是本地 TCP/Unix Socket,依据是什么? 本文先给出可直接复述的结论,再用最小代码说明IPC TCP Unix Socket 进程通信 选型的工作方式、判断依据、项目边界和常见误区。
进程级隔离和线程级隔离在 Node.js 故障场景下的行为差异是什么? 本文先给出可直接复述的结论,再用最小代码说明进程 线程 隔离 故障 Node.js的工作方式、判断依据、项目边界和常见误区。
在 Worker 线程中 AsyncLocalStorage 等异步上下文能否跨线程传递? 本文先给出可直接复述的结论,再用最小代码说明worker_threads AsyncLocalStorage 上下文的工作方式、判断依据、项目边界和常见误区。
Node.js Worker 线程中 Atomics.wait 和 Atomics.notify 解决什么问题? 本文先给出可直接复述的结论,再用最小代码说明Atomics wait notify 线程同步的工作方式、判断依据、项目边界和常见误区。
如何在 Node.js 中创建 Worker 线程执行 CPU 密集计算? 本文先给出可直接复述的结论,再用最小代码说明worker_threads 创建 CPU 密集 示例的工作方式、判断依据、项目边界和常见误区。
BroadcastChannel 在 worker_threads 场景下提供什么通信能力? 本文先给出可直接复述的结论,再用最小代码说明BroadcastChannel worker_threads 广播的工作方式、判断依据、项目边界和常见误区。
为什么 Node.js 的 CPU 密集任务应该放到 worker_threads 而不是主线程? 本文先给出可直接复述的结论,再用最小代码说明worker_threads CPU 密集 事件循环 阻塞的工作方式、判断依据、项目边界和常见误区。
Worker 线程抛出未捕获异常时主线程如何感知和处理? 本文先给出可直接复述的结论,再用最小代码说明worker_threads error 事件 异常处理的工作方式、判断依据、项目边界和常见误区。
MessageChannel 如何让两个 Worker 线程不经过主线程直接通信? 本文先给出可直接复述的结论,再用最小代码说明MessageChannel worker_threads 线程直连的工作方式、判断依据、项目边界和常见误区。
parentPort 和 isMainThread 在 worker_threads 中分别起什么作用? 本文先给出可直接复述的结论,再用最小代码说明parentPort isMainThread worker_threads的工作方式、判断依据、项目边界和常见误区。
如何设计一个 Node.js Worker 线程池来处理批量 CPU 密集任务? 本文先给出可直接复述的结论,再用最小代码说明worker_threads 线程池 设计的工作方式、判断依据、项目边界和常见误区。
Worker 线程池的线程数量应该依据什么来确定? 本文先给出可直接复述的结论,再用最小代码说明worker_threads 线程数 CPU 核数的工作方式、判断依据、项目边界和常见误区。
Worker 线程的 resourceLimits 选项能限制哪些资源,解决什么问题? 本文先给出可直接复述的结论,再用最小代码说明worker_threads resourceLimits 内存限制的工作方式、判断依据、项目边界和常见误区。
worker.terminate() 的语义是什么,调用后还能复用该 Worker 吗? 本文先给出可直接复述的结论,再用最小代码说明worker terminate 终止 复用的工作方式、判断依据、项目边界和常见误区。
Worker 线程间如何用 transferList 转移 ArrayBuffer 的所有权? 本文先给出可直接复述的结论,再用最小代码说明worker_threads transferList ArrayBuffer 转移的工作方式、判断依据、项目边界和常见误区。
worker_threads 与 child_process 在架构上的核心差异是什么? 本文先给出可直接复述的结论,再用最小代码说明worker_threads child_process 区别的工作方式、判断依据、项目边界和常见误区。
workerData 适合向 Worker 线程传什么,和 postMessage 传参有何不同? 本文先给出可直接复述的结论,再用最小代码说明workerData worker_threads 初始化参数的工作方式、判断依据、项目边界和常见误区。
结合事件循环延迟、CPU 栈和请求阶段耗时定位 Node.js 卡顿,给出 monitorEventLoopDelay 的纳秒转毫秒示例,说明统计窗口、采样局限和下游等待不能混为同一根因。
说明事件循环 close callbacks 只涉及部分资源关闭回调,区分 socket 生命周期、普通 EventEmitter 同名事件和自定义流实现,避免从事件名字推导固定阶段或业务成功。
Node.js 的 CPU 密集任务应该切片、用 Worker,还是交给独立进程? 本文先给出可直接复述的结论,再用最小代码说明Node.js CPU 密集任务 拆分 setImmediate worker_threads的工作方式、判断依据、项目边界和常见误区。
以 fs.readFile 回调为具体上下文比较 setImmediate 与零延时定时器,说明 poll 到 check 的关系、定时器阈值,以及同步注册、await 续体和自定义事件的区别。
JSON.parse 一个超大请求体为什么也会阻塞 Node.js 事件循环,有哪些缓解方式? 本文先给出可直接复述的结论,再用最小代码说明JSON.parse 阻塞事件循环 大请求体的工作方式、判断依据、项目边界和常见误区。
如何用 perf_hooks 的 monitorEventLoopDelay 量化 Node.js 事件循环延迟? 本文先给出可直接复述的结论,再用最小代码说明monitorEventLoopDelay 事件循环延迟 直方图的工作方式、判断依据、项目边界和常见误区。
通过分段求和示例展示如何保存游标与累计结果、在片段间安排 setImmediate,说明首片仍同步执行、总复杂度不变,以及片段预算、取消和不可拆分计算的限制。
Node.js 事件循环有哪些阶段,Node 20 之后定时器位置有什么变化? 本文先给出可直接复述的结论,再用最小代码说明Node.js 事件循环阶段 timers poll check的工作方式、判断依据、项目边界和常见误区。
Node.js 的 poll 阶段何时等待 I/O,何时继续进入后续阶段? 本文先给出可直接复述的结论,再用最小代码说明Node.js poll 阶段 阻塞 计算超时的工作方式、判断依据、项目边界和常见误区。
Node.js 进程什么时候自然退出?哪些未决的句柄或定时器会阻止退出? 本文先给出可直接复述的结论,再用最小代码说明Node.js 进程退出 活跃句柄 ref unref的工作方式、判断依据、项目边界和常见误区。
Node.js 中什么时候用 setImmediate,什么时候用 setTimeout? 本文先给出可直接复述的结论,再用最小代码说明setImmediate 设计意图 适用场景的工作方式、判断依据、项目边界和常见误区。
Node.js 的 setTimeout 为什么无法保证精确的毫秒级触发,最小延迟和影响因素有哪些? 本文先给出可直接复述的结论,再用最小代码说明setTimeout 最小延迟 精度 Node.js 1ms的工作方式、判断依据、项目边界和常见误区。
解释顶层注册时计时阈值和启动过程如何影响观察,给出独立 CommonJS 脚本用于记录顺序,说明重复结果不是保证,并区分 I/O 回调、ESM 与真实业务依赖。
Node.js 中给定时器调用 unref() 后进程行为有什么变化,典型用途是什么? 本文先给出可直接复述的结论,再用最小代码说明timer unref Node.js 不阻止进程退出的工作方式、判断依据、项目边界和常见误区。
async_hooks 的 init、before、after、destroy 四个回调分别在异步资源生命周期的什么时候触发? 本文先给出可直接复述的结论,再用最小代码说明async_hooks init before after destroy 时机的工作方式、判断依据、项目边界和常见误区。
Node.js 的 async_hooks 模块能追踪什么,为什么它被标记为实验性但仍被广泛使用? 本文先给出可直接复述的结论,再用最小代码说明async_hooks 用途 实验性 asyncId的工作方式、判断依据、项目边界和常见误区。
AsyncLocalStorage 如何在 Node.js 中实现跨异步调用的请求级上下文(如 traceId)传递? 本文先给出可直接复述的结论,再用最小代码说明AsyncLocalStorage 请求上下文 traceId 传递的工作方式、判断依据、项目边界和常见误区。
哪些写法会导致 AsyncLocalStorage 的上下文在 Node.js 中丢失,比如事件监听或连接池复用? 本文先给出可直接复述的结论,再用最小代码说明AsyncLocalStorage 上下文丢失 EventEmitter 连接池的工作方式、判断依据、项目边界和常见误区。
在 Node.js 里做请求上下文传递,为什么优先 AsyncLocalStorage 而不是第三方 cls 或 zone 方案? 本文先给出可直接复述的结论,再用最小代码说明AsyncLocalStorage 对比 cls 请求上下文方案的工作方式、判断依据、项目边界和常见误区。
Node.js 的 AsyncResource 类解决什么问题,自定义异步资源(如手写队列)为什么要显式使用它? 本文先给出可直接复述的结论,再用最小代码说明AsyncResource 自定义异步资源 AsyncLocalStorage的工作方式、判断依据、项目边界和常见误区。
Node.js 中 executionAsyncId 和 triggerAsyncId 分别代表什么,如何用它们还原异步调用因果链? 本文先给出可直接复述的结论,再用最小代码说明executionAsyncId triggerAsyncId 区别的工作方式、判断依据、项目边界和常见误区。
Node.js EventEmitter 的 captureRejections 选项解决了异步监听器里的什么问题? 本文先给出可直接复述的结论,再用最小代码说明EventEmitter captureRejections 异步监听器 rejection的工作方式、判断依据、项目边界和常见误区。
设计一个 Node.js 内部模块时,什么时候应该继承 EventEmitter 而不是直接回调或返回 Promise? 本文先给出可直接复述的结论,再用最小代码说明继承 EventEmitter 设计决策 回调 Promise 对比的工作方式、判断依据、项目边界和常见误区。
为什么 Node.js 约定 EventEmitter 的 'error' 事件没有监听器时会直接抛出异常? 本文先给出可直接复述的结论,再用最小代码说明EventEmitter error 事件 未监听 抛出的工作方式、判断依据、项目边界和常见误区。
Node.js 的 events.on() 把 EventEmitter 转成异步迭代器,适用于什么场景,背压如何处理? 本文先给出可直接复述的结论,再用最小代码说明events.on 异步迭代器 EventEmitter Node.js的工作方式、判断依据、项目边界和常见误区。
Node.js EventEmitter 监听器里的 this 指向什么,箭头函数和普通函数有何差别? 本文先给出可直接复述的结论,再用最小代码说明EventEmitter 监听器 this 箭头函数的工作方式、判断依据、项目边界和常见误区。
Node.js EventEmitter 的 'newListener' 事件能在什么场景派上用场,使用时有什么坑? 本文先给出可直接复述的结论,再用最小代码说明EventEmitter newListener 事件 用途 递归的工作方式、判断依据、项目边界和常见误区。
在 Node.js 循环里反复给同一个 EventEmitter 绑 once 监听器,为什么可能内存泄漏,如何规避? 本文先给出可直接复述的结论,再用最小代码说明EventEmitter once 内存泄漏 监听器累积的工作方式、判断依据、项目边界和常见误区。
Node.js 中对 once 注册的监听器调用 removeListener 时应该传原函数还是包装函数? 本文先给出可直接复述的结论,再用最小代码说明once removeListener 包装函数 EventEmitter的工作方式、判断依据、项目边界和常见误区。
Node.js EventEmitter 的 prependListener 与 on 在什么场景下有意义,比如要保证某监听器最先执行? 本文先给出可直接复述的结论,再用最小代码说明prependListener 监听器顺序 EventEmitter的工作方式、判断依据、项目边界和常见误区。
为什么用匿名箭头函数注册的 EventEmitter 监听器常常 removeListener 失败? 本文先给出可直接复述的结论,再用最小代码说明removeListener 移除失败 函数引用 EventEmitter的工作方式、判断依据、项目边界和常见误区。
Node.js 的 EventEmitter.emit 是同步还是异步派发?这对监听器里的异常有什么后果? 本文先给出可直接复述的结论,再用最小代码说明EventEmitter emit 同步 监听器异常的工作方式、判断依据、项目边界和常见误区。
Node.js 中 async 函数里 await 一个 Promise 后,后续代码作为什么类型的任务恢复执行? 本文先给出可直接复述的结论,再用最小代码说明await 恢复执行 微任务 Node.js async的工作方式、判断依据、项目边界和常见误区。