js引擎线程只是浏览器中的一个线程。通常浏览器会有三个线程:js引擎线程、GUI线程(用于渲染视图)、浏览器时间触发线程(用于用户对浏览器的控制交互)
假如js是多线程执行,那么很可能出现同一时刻有两个线程在操作同一个UI DOM元素,并且假如一个线程用于给DOM元素添加样式,而另一个线程用于删除DOM元素。这时候,这个DOM就成为了 临界资源,浏览器就无法去裁决究竟以哪一个线程的操作为准。虽然,我们也可以实现某些 锁 来规避这种线程操作互斥的情况,但是这一定会给js开发带来更大的复杂性。所以js最终采用单线程机制。
JavaScriptCore 自称为“优化虚拟机”。
node 既然他们是驱动 JavaScript 的工具,所以它们也是由 JavaScript 引擎驱动。
Google 的 V8 引擎 是用 C++ 编写的,它也能够编译并执行 JavaScript 源代码、处理内存分配和垃圾回收。它被设计成由两个编译器组成,可以把源码直接编译成机器码:
web worker标准,允许js脚本去创造多个线程,但是这些线程中只有一个主线程,而且其他线程都受主线程的控制,所以,js的本质依然是单线程
浏览器是多线程的
引擎 c++编写 解释器vc++
IO 读写文件的 操作
Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications.
node.js 是平台 javascript 是语言
与php python perl ruby的
“既是语言又是平台”不同;
最后还是变成二进制编码在机器里跑
V8引擎可以独立运行不依赖于其他环境,也可以嵌入任何的C++应用当中使用
关于本文标题,我并不认为参与写或者读本文的人是白痴。但是有时某个话题会让你觉得自己就像个白痴一样,而 JavaScript 引擎就是这些话题之一,至少对于我来说是这样
“JavaScript 引擎”通常被称作一种 虚拟机
JavaScript 虚拟机是一种进程虚拟机,专门设计来解释和执行的 JavaScript 代码。
生活最难的是自我说服。
画家程鸿-素描佳作