我想知道如何在JS中启动,连接和分离线程。
我看到了有关 Service Worker 的信息,这些信息旨在作为单独的进程在后台运行,而不是我正在寻找的。还有别的吗?如何使用它?
您可能不想要服务工作者,而是 Web 工作者(spec |MDN 文章(在 Node.js 上的浏览器或工作线程上。
主窗口中的JavaScript在单个线程上运行,它可以运行异步函数,这些函数将在同一线程中变为进度。看:
- JS并发模型:https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop
- JS异步功能:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function
这两个 API 将允许您运行不同的线程:
Web Workerhttps://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API(运行和死亡类型的脚本线程执行(示例:
var myWorker = new Worker('worker.js');
myWorker.postMessage('Message posted to worker');
服务工作进程https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API(在网络和应用程序之间的后台运行(