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

参考

相关推荐
我血条子呢6 分钟前
【Vite】离线打包@iconify/vue的图标
前端·javascript·vue.js
名扬91110 分钟前
webrtc编译问题-ubuntu
开发语言·python
皮蛋瘦肉粥_12118 分钟前
pink老师-js基础-day4
javascript
岁月宁静19 分钟前
从 JavaScript 到 Python:前端工程师的完全转换指南
前端·javascript·python
白云千载尽28 分钟前
Python 初学者 / 中级开发者常踩坑的 10 个坑 —— 要用好几年才能彻底搞清楚的
开发语言·python
特严赤傲40 分钟前
在 Vue 中 v-for的写法对语法高亮的影响
前端·javascript·vue.js
Evand J41 分钟前
【MATLAB雷达滤波代码】二维,单雷达跟踪与滤波。EKF融合雷达的距离、角度+目标IMU数据。附代码下载链接
开发语言·matlab·雷达·ekf·雷达跟踪·角度观测
Nan_Shu_6141 小时前
熟悉RuoYi-Vue-Plus-前端 (1)
前端·javascript·vue.js
weixin_462446231 小时前
【原创实现】Python 实现 PDF 批量压缩工具(支持逐个确认 / 批量处理 / 多级压缩)
开发语言·python·pdf
沐知全栈开发1 小时前
Bootstrap 轮播教程与最佳实践
开发语言