返回

细说浏览器进程与线程,精辟解读 WebWorker 和 SharedWorker

前端

进程与线程的基本认识
并发是一种使系统同时处理多个任务的技术。并发系统可以有不同的方法来处理这些任务,最常见的两种方法是多进程和多线程。

进程 是一个独立的、具有自己地址空间的程序运行实例。它可以有自己的代码、数据和资源,并且可以独立运行。

线程 是进程中的一个独立执行单元。它有自己的程序计数器、栈和局部变量,但与其他线程共享进程的地址空间。这意味着线程可以访问进程中的任何数据,也可以调用进程中的任何函数。

浏览器进程与线程

浏览器进程是一个应用程序,它负责管理打开的网页和其他浏览器内容。它包含一个主线程和多个子线程。

主线程 负责处理用户输入、加载网页和执行 JavaScript 代码。它也是事件循环的宿主,事件循环是一个处理事件的机制,比如鼠标点击和键盘事件。

子线程 负责处理一些特殊的任务,比如加载图片和视频、处理 WebSockets 连接和执行 Web Workers。

Web Worker 与 Shared Worker

Web Worker 是浏览器提供的一种允许 JavaScript 代码在后台运行的机制。它可以用来执行耗时较长的任务,而不会阻塞主线程。

Shared Worker 也是浏览器提供的一种允许 JavaScript 代码在后台运行的机制,但它与 Web Worker 有一个重要区别:它可以在多个页面中共享。这意味着多个页面可以同时使用同一个 Shared Worker,而无需重复执行相同的任务。

JavaScript 定时器是否是真正的 4 毫秒最低延迟?

JavaScript 定时器是一种允许 JavaScript 代码在指定的时间间隔后执行的机制。最常用的定时器函数是 setTimeout()setInterval()

setTimeout() 函数接受两个参数:要执行的代码和延迟时间。延迟时间以毫秒为单位。

setInterval() 函数也接受两个参数:要执行的代码和间隔时间。间隔时间以毫秒为单位。

传统的看法认为 JavaScript 定时器无法达到 4 毫秒的最低延迟,这是因为浏览器的事件循环通常每 10 毫秒运行一次。然而,随着浏览器的不断发展,现在已经有一些浏览器支持 4 毫秒的最低延迟定时器。

结语

浏览器进程与线程是浏览器架构的重要组成部分,对理解网络世界的运作机制至关重要。Web Worker 和 Shared Worker 是浏览器提供的重要机制,可以帮助 JavaScript 代码在后台运行,而不会阻塞主线程。JavaScript 定时器也是一种重要的机制,可以帮助 JavaScript 代码在指定的时间间隔后执行。