将任务卸载到 Node.js 上的工作池和浏览器中
workerpool 提供了一种简单的方法,可用于创建工作池,既可动态分流计算任务,也可管理专用工作池。 workerpool 基本上实现了 线程池模式。其中包含一组工作池,新任务会被放入队列中。每个工作池一次执行一个任务,完成后从队列中选择新任务。工作池可通过基于承诺的自然代理进行访问,就好像它们直接在主应用程序中可用一样。
这意味着 CPU 密集型任务会阻止其他任务的执行。对于浏览器环境,在执行 CPU 密集型任务时,浏览器将不会响应用户事件(如鼠标点击) (浏览器"卡死")。对于 Node.js 服务器,在执行单个、密集型请求时,服务器将不会响应任何新请求。
对于前端流程,这种情况不是所希望的。因此,应将 CPU 密集型任务从主事件循环中卸载到专用的 workers。在浏览器环境中,可以使用 Web Workers。在 Node.js 中,可以使用 子进程 和 工作线程。应将应用程序分割为独立的、不相关的部分,以便进行并行处理。
暂无开放 Issues,或尚未同步最近议题。