Как работает setTimeout - PullRequest
       6

Как работает setTimeout

1 голос
/ 27 октября 2010

Как setTimeout в Javascript работает на низком уровне?Есть ли какой-то аппаратный будильник?Или переводчик (через систему) просто периодически спрашивает, сколько сейчас времени?

1 Ответ

2 голосов
/ 27 октября 2010

Все, что указано, это эффекты уровня языка. Там нет требования, чтобы он работал определенным образом на низком уровне. Для этого потребуется некоторая навязчивая политика относительно того, какие функции должны существовать на выбранном вами языке, прежде чем вы сможете создать интерпретатор Javascript.

Как правило, большинство ОС имеют системный таймер, который тикает X раз в секунду, и интерпретатор либо устанавливает таймер для запуска события, либо отправляет сигнал после стольких тиков, либо запускает отдельный поток, который спит до время для обработки тайм-аута. В это время интерпретатор настроит все так, чтобы следующий обработчик запускался. Но вам не следует полагаться на какое-либо конкретное поведение, так как оно является деталью реализации (и может привести к сбою, если вы не запускаете свой код в браузере, для которого вы разработали).

...