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

参考

相关推荐
论迹9 分钟前
【JavaEE】-- 多线程(初阶)2
java·开发语言·java-ee
+72019 分钟前
如何在java中用httpclient实现rpc post 请求
java·开发语言·rpc
学习两年半的Javaer28 分钟前
Rust语言基础知识详解【一】
开发语言·rust
PyAIGCMaster29 分钟前
50周学习go语言:第四周 函数与错误处理深度解析
开发语言·学习·golang
全栈开发圈30 分钟前
新书速览|Rust汽车电子开发实践
开发语言·rust·汽车
PyAIGCMaster31 分钟前
第二周补充:Go语言中&取地址符与fmt函数详解
开发语言·后端·golang
~kiss~37 分钟前
Rust学习~tokio简介
开发语言·学习·rust
Mr.Wang8091 小时前
条款23:宁以non-member、non-friend替换member函数
开发语言·c++
关关钧1 小时前
【R语言】读取CSV数据时,显示[1] PK...<0 行> (或0-长度的row.names)
开发语言·r语言
以卿a2 小时前
C++ 模板初阶
开发语言·c++