Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果Javascript是单线程的,时钟之类的东西是如何工作的?_Javascript_Node.js_Asynchronous_Web_Concurrency - Fatal编程技术网

如果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穿衣服
  • 你必须找到你的包
  • 找到你的车钥匙
  • 你得给自己煮杯咖啡喝
  • 梳头
正如你想象的那样,这并不容易,也不会是线性的。妈妈将无法一个任务接一个任务地执行,她将并行执行多个任务:

开始给自己煮咖啡,同时她给孩子a穿上鞋子,斥责孩子B这很烦人

每项任务都将以并行的方式分多个步骤完成(也许她需要5个时间来完成给孩子穿衣服)


现在想象一下,计算机是一个非常快的mum(1Ghz处理器每秒将执行1.000.000.000次操作)。

那篇文章中的相关代码行,启动整个计时器进程的代码行是
var t=setTimeout(function(){currentTime()},1000)有时不能,例如,
警报(0)
。其他时候要做的事情很快。有时线程只是等待事情发生。我用时钟作为一个纯粹的例子。我的问题是要知道在同一时间执行的事情是如何工作的。思维实验:如果
setTimeout
不是用Javascript编写的呢?它实际上不是语言的一部分;它是浏览器的一部分,所以它很可能是用C语言或C++语言编写的。