setTimeout如何工作

时间:2010-10-27 10:00:54

标签: time timeout cpu-architecture

Javascript中的setTimeout如何在低级别工作?是否存在一些硬件闹钟?或者口译员(通过系统)只是定期询问现在是什么时间?

1 个答案:

答案 0 :(得分:2)

所有指定的是语言级效果。没有要求它以低级别的特定方式工作。在您创建Javascript解释器之前,这样做需要一些关于在您选择的语言中必须存在哪些函数的侵入性策略。

通常情况下,大多数操作系统都有一个系统计时器,每秒刻录X次,而解释器要么设置一个计时器来触发事件,要么在这么多刻度之后发送信号,或者运行一个单独的线程来休眠直到它处理超时的时间。那时,解释器将进行设置,以便事件处理程序是下一个运行的东西。但是你不应该依赖任何特定的行为,因为它是一个实现细节(如果你没有在你开发的浏览器中运行代码,可能会失败)。