线程
在计算机科学中,线程是指同时执行多个任务或程序的活动。每一个能够执行代码的单元都称为一个线程。
主线程 是浏览器用于处理用户事件、渲染和绘制显示以及执行构成典型网页或应用程序的大部分代码的线程。由于所有这些事情都发生在同一个线程中,缓慢的网站或应用程序脚本会拖慢整个浏览器的速度;更糟糕的是,如果网站或应用程序脚本进入无限循环,整个浏览器将冻结。这将导致用户体验令人沮丧、迟钝(甚至更糟)。
现代 JavaScript 提供了创建额外线程的方法,每个线程独立执行,同时可能相互通信。这通过 Web Workers 等技术实现,这些技术可以用来启动一个子程序,在它自己的线程中与主线程并发执行。这使得缓慢、复杂或长时间运行的任务可以独立于主线程执行,从而保持网站或应用程序的整体性能——以及整个浏览器的性能。线程还可以让 Web 应用程序利用现代多核处理器:实现比单核上运行的多线程应用程序更好的性能。
一种特殊类型的 worker,称为 Service Worker,可以创建并在用户许可的情况下被网站“留下”,即使在用户当前不使用该网站时也能运行。这用于创建能够通知用户在他们不积极使用网站时发生的事件的网站。例如,通知用户收到了新电子邮件,即使他们当前没有登录他们的邮件服务。
总的来说,我们可以看到操作系统中的这些线程非常有帮助。它们有助于最小化上下文切换时间,实现更高效的通信,并允许进一步利用多处理器架构。