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事件循环处理异步操作。

参考

相关推荐
johnjincaaaa4 分钟前
猿人学第 18 题「jsvmp 洞察先机」逆向通关实录
javascript·后端
码农小河661 小时前
基于PHP的电商后台蜜罐系统
开发语言·php
starzy19902 小时前
深入理解Scala柯里化函数:函数链式变换
开发语言·scala
ShineWinsu2 小时前
对于Qt:QTreeWidget常见属性以及QTreeWidgetItem类的解析
开发语言·c++·qt·gui·客户端·多叉树·qtreewidget
落羽的落羽2 小时前
【C++】C++17的主要特性
linux·服务器·开发语言·c++·算法·机器学习
FungLeo3 小时前
成为全栈·Vue 管理后台篇·分类树与标签管理:层级数据如何落到管理界面
前端·javascript·vue.js·分类树·naive ui·标签管理·前端数据结构
总要学点什么3 小时前
第108篇:三维特效-图片轨迹线效果——把贴图滚成一串箭头,想用它的本色反而整条消失
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
小厨勺子7 小时前
我用AIUI给Rokid眼镜做了个随身换算智能体
javascript
starzy19907 小时前
深入理解Scala隐式值:编译期自动装配
开发语言·后端·scala
布莱克6058 小时前
Swift 条件语句详解:从 if 到 switch 的完整指南
开发语言·ssh·swift·switch·条件语句·guard·if