JS灵魂之问:JS为什么是单线程的?

  • 时间:2018-06-06 01:45 作者:前端科技 来源:前端科技 阅读:57
  • 扫一扫,手机访问
摘要:相信每个前台开发者都知道JavaScript是单线程的。为了避免脚本执行阻塞页面加载,我们都知道要把js脚本放在HTML尾部,先加载CSS样式,而后再执行JavaScript脚本。可是为什么要把JavaScript设计为单线程语言呢?多线程不是能充分利使用CPU资源,加快执行速度吗?Brendan

相信每个前台开发者都知道JavaScript是单线程的。为了避免脚本执行阻塞页面加载,我们都知道要把js脚本放在HTML尾部,先加载CSS样式,而后再执行JavaScript脚本。可是为什么要把JavaScript设计为单线程语言呢?多线程不是能充分利使用CPU资源,加快执行速度吗?Brendan Eich创造JavaScript的时候是怎样想的呢?

JS灵魂之问:JS为什么是单线程的?


JavaScript诞生的目的就是在网页上执行脚本程序。作为浏览器脚本语言,JavaScript的主要使用途是与使用户互动,以及操作DOM。这决定了它只可以是单线程,否则会带来很复杂的同步问题。考虑到网络和计算机的影响,这种同步问题很难很难处理。

比方,两个线程都去操作页面元素,那以哪个线程的操作结果为准呢?所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心特征,将来也不会改变。

为了利使用多核CPU的计算可以力,HTML5提出Web Worker标准,允许JavaScript脚本创立多个线程,但是子线程完全受主线程控制,且不得操作DOM。


JS灵魂之问:JS为什么是单线程的?

所以说JavaScript单线程的设计是因为它的功可以定位决定的,作为在浏览器上执行的脚本,为了保持可开发性,可维护性,单线程就是最好的选择。

假如你觉得本篇文章对你有帮助,欢迎点赞,转发。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|服务器应用】摩尔定律与奔腾的芯- INTEL 《浪潮之巅》读书笔记(2018-12-09 22:29)
【系统环境|服务器应用】说说在 Vue.js 中如何实现组件间通信(高级篇)(2018-12-09 22:29)
【系统环境|服务器应用】开发人员安装电脑后可能会安装的 6 大软件(2018-12-09 22:29)
【系统环境|服务器应用】人工智能概念-11-系统智能(2018-12-09 22:29)
【系统环境|服务器应用】Spark SQL,如何将 DataFrame 转为 json 格式(2018-12-09 22:29)
【系统环境|服务器应用】机器学习入门(六) — 聚类和类似度模型(2018-12-09 22:29)
【系统环境|服务器应用】Shell编程基础(2018-12-09 22:28)
【系统环境|服务器应用】JavaScript中this的指向问题归纳总结(2018-12-09 22:28)
【系统环境|服务器应用】java nio与bio —— 阻塞IO与非阻塞IO的区别(2018-12-09 22:28)
【系统环境|服务器应用】Mysql入门到入土之Mysql详情和Sql基本语法(基础讲解篇)(2018-12-09 22:28)
手机二维码手机访问领取大礼包
返回顶部