如果Javascript是单线程的,时钟之类的东西是如何工作的?
我的意思是,也许我错了,完全不理解单线程的含义,但我只是想知道:当用户在同一页面上与其他事物交互时,时钟怎么能不停地在网页上工作如果Javascript是单线程的,时钟之类的东西是如何工作的?,javascript,node.js,asynchronous,web,concurrency,Javascript,Node.js,Asynchronous,Web,Concurrency,我的意思是,也许我错了,完全不理解单线程的含义,但我只是想知道:当用户在同一页面上与其他事物交互时,时钟怎么能不停地在网页上工作 我以时钟为例,但它可以是任何类型的元件,也可以是同时工作的元件 想象一下,你是一个单身妈妈,家里有三个孩子。今天是星期一早上,你必须为上学做准备 你所要做的就是: 你得喂孩子A,B和C 你必须给孩子A、B和C穿衣服 你必须找到你的包 找到你的车钥匙 你得给自己煮杯咖啡喝 梳头 正如你想象的那样,这并不容易,也不会是线性的。妈妈将无法一个任务接一个任务地执行,她将
我以时钟为例,但它可以是任何类型的元件,也可以是同时工作的元件
想象一下,你是一个单身妈妈,家里有三个孩子。今天是星期一早上,你必须为上学做准备 你所要做的就是:
- 你得喂孩子A,B和C
- 你必须给孩子A、B和C穿衣服
- 你必须找到你的包
- 找到你的车钥匙
- 你得给自己煮杯咖啡喝
- 梳头
现在想象一下,计算机是一个非常快的mum(1Ghz处理器每秒将执行1.000.000.000次操作)。那篇文章中的相关代码行,启动整个计时器进程的代码行是
var t=setTimeout(function(){currentTime()},1000)代码>有时不能,例如,警报(0)
。其他时候要做的事情很快。有时线程只是等待事情发生。我用时钟作为一个纯粹的例子。我的问题是要知道在同一时间执行的事情是如何工作的。思维实验:如果setTimeout
不是用Javascript编写的呢?它实际上不是语言的一部分;它是浏览器的一部分,所以它很可能是用C语言或C++语言编写的。