【Node】在Node中执行CPU密集型任务

2023/12/11 22:26:05

在 node 中执行长任务时,会阻塞主线程,导致后面的任务无法执行,造成程序假死的情况。

对这种情况有以下解决方案:

  • 任务切片,将长任务分割为多个短任务,在执行一段之后将执行权限交给任务队列执行其他任务,但是如果短任务也用时过长的话这种方法就无效了。
  • 交给子进程 child_process 执行。
  • 交给工作线程 worker 执行,工作线程占用的内存数量比进程少,这些线程都在同一进程内,所以启动较快。

构建线程池

参考

《Node.js设计模式》