如何在 Node.js 中创建 Worker 线程执行 CPU 密集计算?
如何在 Node.js 中创建 Worker 线程执行 CPU 密集计算? 本文先给出可直接复述的结论,再用最小代码说明worker_threads 创建 CPU 密集 示例的工作方式、判断依据、项目边界和常见误区。
并发编程专题面试题第 5 页,显示第 201–250 题,共找到 448 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
如何在 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 初始化参数的工作方式、判断依据、项目边界和常见误区。
Node.js 的 CPU 密集任务应该切片、用 Worker,还是交给独立进程? 本文先给出可直接复述的结论,再用最小代码说明Node.js CPU 密集任务 拆分 setImmediate worker_threads的工作方式、判断依据、项目边界和常见误区。
Node.js 进程什么时候自然退出?哪些未决的句柄或定时器会阻止退出? 本文先给出可直接复述的结论,再用最小代码说明Node.js 进程退出 活跃句柄 ref unref的工作方式、判断依据、项目边界和常见误区。
Node.js 中给定时器调用 unref() 后进程行为有什么变化,典型用途是什么? 本文先给出可直接复述的结论,再用最小代码说明timer unref Node.js 不阻止进程退出的工作方式、判断依据、项目边界和常见误区。
为什么 Node.js 约定 EventEmitter 的 'error' 事件没有监听器时会直接抛出异常? 本文先给出可直接复述的结论,再用最小代码说明EventEmitter error 事件 未监听 抛出的工作方式、判断依据、项目边界和常见误区。
Node.js 的 module customization hooks(resolve/load)能解决什么 CJS 做不到的问题? 本文先给出可直接复述的结论,再用最小代码说明Node.js loader hooks register resolve load 自定义加载的工作方式、判断依据、项目边界和常见误区。
Node.js 服务支持配置热更新时,哪些配置项可以安全热更、哪些必须重启进程? 本文先给出可直接复述的结论,再用最小代码说明Node.js 配置热更新 哪些必须重启的工作方式、判断依据、项目边界和常见误区。
Node.js 生产服务中大量使用 console.log 可能带来哪些性能问题? 本文先给出可直接复述的结论,再用最小代码说明Node.js console.log 同步阻塞 性能问题的工作方式、判断依据、项目边界和常见误区。
Node.js 服务 CPU 飙高时,如何不重启进程通过 inspector 信号或 --cpu-prof 采集 CPU profile? 本文先给出可直接复述的结论,再用最小代码说明Node.js CPU飙高 --cpu-prof 在线采集的工作方式、判断依据、项目边界和常见误区。
Node.js 服务进程退出码(0/1 及 process.exitCode 与 process.exit())应该如何规范使用? 本文先给出可直接复述的结论,再用最小代码说明Node.js 退出码 exitCode 与 process.exit 规范的工作方式、判断依据、项目边界和常见误区。
Node.js 进程句柄(handle)泄漏导致无法退出,如何用 process._getActiveHandles 或 why-is-node-running 思路定位? 本文先给出可直接复述的结论,再用最小代码说明Node.js 进程不退出 active handles 排查的工作方式、判断依据、项目边界和常见误区。
Node.js 服务的 liveness 与 readiness 健康检查接口应该分别检查什么,为什么不能混用? 本文先给出可直接复述的结论,再用最小代码说明Node.js liveness readiness 健康检查设计的工作方式、判断依据、项目边界和常见误区。
Node.js 出站 HTTP 请求如何通过 http.Agent 的 keepAlive 与 maxSockets 实现连接复用与并发限制? 本文先给出可直接复述的结论,再用最小代码说明Node.js http.Agent keepAlive maxSockets 连接复用的工作方式、判断依据、项目边界和常见误区。
Node.js 进程中 SIGINT、SIGTERM、SIGHUP、SIGKILL 的默认行为分别是什么,哪些不能被捕获? 本文先给出可直接复述的结论,再用最小代码说明Node.js process signal SIGINT SIGTERM 默认行为的工作方式、判断依据、项目边界和常见误区。
Node.js 中为什么请求处理时 req 与 res 上的 error 事件都要监听,漏掉会怎样? 本文先给出可直接复述的结论,再用最小代码说明Node.js req res error 事件 漏监听后果的工作方式、判断依据、项目边界和常见误区。
解释未捕获异常为何可能留下部分修改状态,区分业务错误边界、uncaughtException 和只观察的 Monitor,给出独立崩溃示例及外部重启、最小同步诊断的处理原则。
逐项解释未处理 Promise 拒绝的五种 Node.js 模式,区分 throw 与 strict 的事件顺序、警告与退出码,以及监听器对行为的影响,提供独立进程验证方法。
Node.js 的 worker_threads 池大小应该如何确定,线程间通信成本如何影响设计? 本文先给出可直接复述的结论,再用最小代码说明Node.js worker_threads 池大小 通信成本的工作方式、判断依据、项目边界和常见误区。
多个 Node.js Readable 同时 pipe 到同一个 Writable 时,如何避免 chunk 交错导致文件损坏? 本文先给出可直接复述的结论,再用最小代码说明Node.js 多 readable 同一 writable 交错 pipe的工作方式、判断依据、项目边界和常见误区。
Node.js Worker 返回 ArrayBuffer 结果时,共享 SharedArrayBuffer 与 postMessage 拷贝各自适合什么同步需求? 本文先给出可直接复述的结论,再用最小代码说明Node.js worker SharedArrayBuffer ArrayBuffer postMessage的工作方式、判断依据、项目边界和常见误区。
useAsyncData 是否支持多个数据源同时获取?如何组织多个 useAsyncData 调用以避免阻塞? 本文先给出可直接复述的结论,再用最小代码说明Nuxt 3 useAsyncData 多个数据源 并发请求的工作方式、判断依据、项目边界和常见误区。
OpenTelemetry Resource 中 service.name、service.namespace、deployment.environment 如何影响告警归属? 本文先给出可直接复述的结论,再用最小代码说明OpenTelemetry Resource 属性 服务标识 告警归属的工作方式、判断依据、项目边界和常见误区。
多线程程序里 close 一个描述符后立刻被重用会导致什么竞态? 本文先给出可直接复述的结论,再用最小代码说明close fd 复用 竞态 多线程的工作方式、判断依据、项目边界和常见误区。
多个线程同时 epoll_wait 同一个 epoll 实例为什么会产生惊群,如何处理? 本文先给出可直接复述的结论,再用最小代码说明epoll 惊群 多线程 EPOLLEXCLUSIVE的工作方式、判断依据、项目边界和常见误区。
eventfd 和 timerfd 为什么经常出现在 epoll 程序里,它们解决了什么? 本文先给出可直接复述的结论,再用最小代码说明eventfd timerfd epoll 线程唤醒 定时的工作方式、判断依据、项目边界和常见误区。
线上进程文件描述符持续上涨,如何定位是哪里泄漏的? 本文先给出可直接复述的结论,再用最小代码说明文件描述符泄漏 排查 /proc/pid/fd lsof的工作方式、判断依据、项目边界和常见误区。
进程能打开多少个文件描述符受什么限制,调优时应改哪个值? 本文先给出可直接复述的结论,再用最小代码说明ulimit nofile rlimit 文件描述符上限的工作方式、判断依据、项目边界和常见误区。
Linux 中文件描述符在进程内核结构里是如何管理的? 本文先给出可直接复述的结论,再用最小代码说明Linux 文件描述符表 files_struct的工作方式、判断依据、项目边界和常见误区。
为什么 printf 未换行就 fork 会让子进程重复输出同一段内容? 本文先给出可直接复述的结论,再用最小代码说明fork printf 重复输出 用户态缓冲区的工作方式、判断依据、项目边界和常见误区。
io_uring 相比 epoll + 线程池做磁盘异步 I/O 解决了什么核心问题? 本文先给出可直接复述的结论,再用最小代码说明io_uring 共享环形队列 系统调用次数 异步IO的工作方式、判断依据、项目边界和常见误区。
为什么新建文件描述符推荐加 O_CLOEXEC,它解决了哪类问题? 本文先给出可直接复述的结论,再用最小代码说明O_CLOEXEC exec 文件描述符泄漏的工作方式、判断依据、项目边界和常见误区。
向管道并发写入时,多大以内的写能保证原子性? 本文先给出可直接复述的结论,再用最小代码说明PIPE_BUF 管道写原子性的工作方式、判断依据、项目边界和常见误区。
select 在高并发下的三个主要瓶颈是什么? 本文先给出可直接复述的结论,再用最小代码说明select FD_SETSIZE 1024 遍历 性能瓶颈的工作方式、判断依据、项目边界和常见误区。
Shell 重定向和守护进程关闭 0/1/2 的实现依赖 dup2 的什么性质? 本文先给出可直接复述的结论,再用最小代码说明dup2 标准输出重定向 实现原理的工作方式、判断依据、项目边界和常见误区。
为什么高并发服务用 epoll 而不是信号驱动 I/O(O_ASYNC/SIGIO)? 本文先给出可直接复述的结论,再用最小代码说明信号驱动IO SIGIO epoll 对比的工作方式、判断依据、项目边界和常见误区。
删除一个仍被进程打开的文件,磁盘空间何时真正释放? 本文先给出可直接复述的结论,再用最小代码说明unlink 打开文件 磁盘空间 inode 引用计数的工作方式、判断依据、项目边界和常见误区。
write 返回成功后,数据到达磁盘的顺序和时机由什么决定? 本文先给出可直接复述的结论,再用最小代码说明write 写回 dirty page 回写 落盘时机的工作方式、判断依据、项目边界和常见误区。
进程写文件偶尔卡顿数秒,为什么可能是内核写回限流而非磁盘坏了? 本文先给出可直接复述的结论,再用最小代码说明写回限流 dirty_ratio 写卡顿 诊断的工作方式、判断依据、项目边界和常见误区。