HTML5 Web Worker是线程还是进程?

问题描述 投票:5回答:2

从Mozilla文档:

Web Workers是Web内容在后台线程中运行脚本的简单方法。

考虑到Javascript是单线程的,Web工作者是否将线程或进程分开?是否有共享内存将它们分类为线程?

javascript html5 web-worker
2个回答
2
投票

它们在后台threads中运行,但API完全从实现中抽象出来,因此您可能会遇到一个浏览器,它只是将它们安排在与Node之类的其他事件相同的线程上运行。进程过于繁重,无法运行后台任务。


1
投票

考虑到Javascript是单线程的

JavaScript不是单线程的。

JavaScript程序的主要部分在事件循环上运行。

长时间运行的进程(XMLHttpRequest是经典示例)几乎总是在事件循环之外运行(通常在不同的线程上)。

Web Workers只是编写在主事件循环之外运行的JavaScript的一种手段。

Web工作者是单独的线程还是进程?是否有共享内存将它们分类为线程?

这是特定JS引擎的实现细节。

© www.soinside.com 2019 - 2024. All rights reserved.