js为什么是单线程?

基础

js为什么是单线程?

多线程问题

类比操作系统,多线程问题有:

  • 单一资源多线程抢占,引起死锁问题;
  • 线程间同步数据问题;

总结

  1. 为了简单:
    • 更简单的dom渲染。js可以操控dom,而一般来说一个网页一份dom文件,多线程操作dom如果多线程修改dom便容易出现各种问题(例如A线程删除一个dom,而B线程在修改此dom容易报错)。
    • 但是目前浏览器,可以支持js多线程运行,Worker可以支持js创建新线程运行js文件,但是Worker Api中没有document元素,BOM对象只有navigation,location可用。
  2. 提高性能。
  3. 基于单线程,可以利用js事件循环处理异步操作。

参考

相关推荐
梦想的旅途212 小时前
JavaScript 实现企业微信消息自动发送的技术实践
运维·javascript·自动化·企业微信
Qlittleboy12 小时前
PHP的接口参数传递的过多,max_input_vars = 5000
开发语言·php
Aurorar0rua12 小时前
CS50 x 2024 Notes Algorithms - 02
c语言·开发语言·学习方法
en.en..13 小时前
冒泡排序与选择排序完整对比解析
开发语言·数据结构·算法·c#·排序算法
兰令水13 小时前
hot100【acm版】【2026.7.18打卡-java版本】
java·开发语言·算法
cui_ruicheng13 小时前
Python从入门到实战(十三):模块、包与环境管理
开发语言·python
就叫飞六吧13 小时前
子页面和dialog案例
开发语言·javascript·ecmascript
小月土星14 小时前
(实战篇)RAG-demo 深度解析:162行代码中的检索增强生成全景 (含Top-k法)
javascript·数据库·llm
倒流时光三十年14 小时前
Logback 系列(3):三大核心组件 Logger / Appender / Encoder
java·开发语言·logback
Darkwanderor14 小时前
动、静态库相关内容的详细介绍
linux·c语言·开发语言·c++