は、あなたがあなたのコードが> = 1000ミリ秒で実行されることを知っているメインスレッドをブロックせずに経過時間を記録できるように、setTimeout()はどのように実装されていますか?
setTimeout(function() {
console.log('hello')
}, 1000)
のsetTimeout
コールを考えます。
ただし、JavaScriptがシングルスレッドの場合、setTimeout
コールは非ブロック化の経過時間をどのように記録しますか?
私はイベントループの基本を知っていて、そのあとxコールバックがコールバックキューに渡されることを理解しています。しかし、私が理解していないのは、setTimeoutが実行スレッドを遅くすることなく、バックグラウンドで時間を追跡する方法です。
並行して(並列ではなく)実行されていて、何らかの種類のスケジューラを使用しても、同期して実行されている残りのコードのパフォーマンスに悩まないでしょうか?
['イベントループ]](https://developer.mozilla.org/en/docs/Web/JavaScript/EventLoop) – Rayon
@RayonDabreこれは役に立ちません。私はすでにこの記事を読んでいますが、setTimeoutが背後でどのように機能するかは説明していません。どのように非ブロッキングタイマーを実装していますか? – m0meni
jsエンジン自体ではなく、node.jsによって実装されています。 –