iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >javascript引擎是不是单线程
  • 466
分享到

javascript引擎是不是单线程

2024-04-02 19:04:59 466人浏览 独家记忆
摘要

这篇文章给大家分享的是有关javascript引擎是不是单线程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 JavaScript引擎是单线程的;Ja

这篇文章给大家分享的是有关javascript引擎是不是单线程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

JavaScript引擎是单线程的;JavaScript的主要用途是与用户互动以及操作DOM,为例避免复杂的同步问题,使其同一时间只能做一件事情,所以JavaScript是单线程的。

教程操作环境:windows10系统、javascript1.8.5版、Dell G3电脑。

javascript引擎是单线程吗

JavaScript引擎是单线程的。

js为什么是单线程的? 为什么需要异步? 单线程又是如何实现异步的呢?

技术的出现,都跟现实世界里的应用场景密切相关的。

同样的,我们就结合现实场景,来回答问题

(1) JS为什么是单线程的?

单线程:同一个时间只能做一件事

JavaScript的单线程,与他的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这就决定了他只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?

为了利用多核CPU的计算能力,HTML5提出WEB Worker 标准,允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得操作DOM。所以,这个新标准并没有改变JavaScript单线程的本质。

JS最初被设计用在浏览器中,那么想象一下,如果浏览器中的JS是多线程的。

场景描述:

那么现在有2个进程,process1 process2,由于是多进程的JS,所以他们对同一个dom,同时进行操作

process1 删除了该dom,而process2 编辑了该dom,同时下达2个矛盾的命令,浏览器究竟该如何执行呢?

这样想,JS为什么被设计成单线程应该就容易理解了吧。

(2) JS为什么需要异步?

场景描述:

如果JS中不存在异步,只能自上而下执行,如果上一行解析时间很长,那么下面的代码就会被阻塞。

对于用户而言,阻塞就意味着"卡死",这样就导致了很差的用户体验

所以,JS中存在异步执行。

感谢各位的阅读!关于“javascript引擎是不是单线程”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: javascript引擎是不是单线程

本文链接: https://www.lsjlt.com/news/90880.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • javascript引擎是不是单线程
    这篇文章给大家分享的是有关javascript引擎是不是单线程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 JavaScript引擎是单线程的;Ja...
    99+
    2024-04-02
  • javascript引擎是不是虚拟机
    这篇文章主要介绍“javascript引擎是不是虚拟机”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“javascript引擎是不是虚拟机”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • node.js是不是单线程
    这篇文章主要介绍“node.js是不是单线程”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“node.js是不是单线程”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • Node.js是不是单线程吗
    这篇文章主要为大家展示了“Node.js是不是单线程吗”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Node.js是不是单线程吗”这篇文章吧。进程在操作系统中,...
    99+
    2024-04-02
  • javascript中的引擎是什么
    本篇内容主要讲解“javascript中的引擎是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript中的引擎是什么”吧! ...
    99+
    2024-04-02
  • node是不是单线程运行
    这篇“node是不是单线程运行”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“node是不是...
    99+
    2024-04-02
  • javascript是不是多线程语言
    这篇文章主要介绍javascript是不是多线程语言,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! javascript不是多线程语言,而是一种单线程语言...
    99+
    2024-04-02
  • javascript引擎的作用是什么
    这篇文章主要介绍javascript引擎的作用是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! JavaScript引擎用于将javascript代码...
    99+
    2024-04-02
  • javascript指的是单进程还是多线程
    这篇文章将为大家详细讲解有关javascript指的是单进程还是多线程,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 javascript是单...
    99+
    2024-04-02
  • JavaScript单线程的概念是什么
    这篇文章主要介绍“JavaScript单线程的概念是什么”,在日常操作中,相信很多人在JavaScript单线程的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ja...
    99+
    2024-04-02
  • V8引擎是怎样执行JavaScript代码
    V8引擎是怎样执行JavaScript代码,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 题目中说到的V8引擎,大家自然会联想到No...
    99+
    2024-04-02
  • golang是多线程还是单线程
    golang 是一种多线程语言。它使用轻量级的协程作为并发原语,可以充分利用多核 cpu 的优势。协程由 go 调度程序管理,负责分配 cpu 时间片和协调协程执行。 Golang是多...
    99+
    2024-04-21
    golang go语言
  • Redis是单线程还是多线程
    Redis是单线程的,即所有的操作都是由一个线程来处理的。这是因为Redis主要使用内存来存储数据,而内存访问速度非常快,所以单线程...
    99+
    2024-04-09
    Redis
  • 单线程是不是go语言的特性
    这篇文章主要介绍“单线程是不是go语言的特性”,在日常操作中,相信很多人在单线程是不是go语言的特性问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”单线程是不是go语言的特性”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-04
  • JavaScript 引擎的运行原理是什么
    这篇文章将为大家详细讲解有关JavaScript 引擎的运行原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。注意:本文主要基于 Node.js 和基...
    99+
    2024-04-02
  • SQL引擎是什么
    本篇内容介绍了“SQL引擎是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!背景介绍使用SQL 引擎一词是有点随意的。例如Hive 不是一...
    99+
    2023-06-27
  • 什么是Javascript引擎和运行时以及单线程与非阻塞和异步以及并发语言分别是怎样的
    这篇文章将为大家详细讲解有关什么是Javascript引擎和运行时以及单线程与非阻塞和异步以及并发语言分别是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了...
    99+
    2024-04-02
  • JavaScript单线程和任务队列是什么
    这篇文章主要讲解了“JavaScript单线程和任务队列是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript单线程和任务队列是什么”吧!一、JavaScript为什么设计...
    99+
    2023-06-17
  • nodejs多线程还是单线程
    Node.js 多线程还是单线程?在开发领域中,Node.js 的居民们时常被问到这个问题:Node.js 多线程还是单线程? 我们来一探究竟。Node.js 是一个开放源代码、跨平台的、基于 Chrome V8 引擎建立的 JavaScr...
    99+
    2023-05-17
  • ajax是不是多线程
    这篇文章主要为大家展示了“ajax是不是多线程”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ajax是不是多线程”这篇文章吧。ajax不是多线程,而是单线程的,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作