私はちょうど興味があるかもしれないテストをしました:
<!DOCTYPE html>
<html>
<head>
<script>
/* test: if returns in around 1000ms, must interrupt, otherwise it is indeed
not going to let timeout work until work is done. */
window.onload = function() {
var before = performance.now();
setTimeout(function() {
alert('completed in ~' + (performance.now() - before) + ' nanoseconds.');
}, 1000);
/* count to 2^31 - 1... takes 8 seconds on my computer */
for (var i = 0; i < 0xffffffff; ++i) {
/* me busy, leave me alone */
}
};
</script>
</head>
<body>
</body>
</html>
私は今、JavaScriptが特定の時間が経過したことをどのように知るのか本当に興味があります。一定期間スリープするスレッドを生成しますか?もしそうなら、スリープするスレッドの数に制限がありますか、それともスリープしているスレッドは必要になるまで「保存」されますか?多くの混乱。
私はそれが関係があると思います
「正確に1秒である必要がない場合は、1秒だけusleepします。usleepとsleepは、現在のスレッドを、少なくとも要求した時間の効率的な待機状態にします(その後、再度スケジュールできるようになります)。 )。
正確な時刻に近づこうとしないのであれば、clock()をチェックする必要はありません。」
--pthreadスリープ関数、CPU消費
それで、オペレーティングシステムがあなたのためにスケジューリングを行うと思います、その時点でそれはエンジンを中断し、エンジンは世界を止め、タイムアウト機能をキューの一番上に置いてできるだけ早く実行されますか?