- Javascript は設計上、同期ブロッキング IO を思いとどまらせたり、許可したりしませんか?
- Javascript にスリープ API がないのはなぜですか? 上記の点によるものでしょうか。
- ブラウザは、javascript を実行する複数のスレッドを持つことができますか? なぜ常にシングルスレッドなのですか?
上記の点 (ブラウザーの制限による) により、javascript はサーバー側のノンブロッキング言語として理想的な言語になりますか?
上記の点 (ブラウザーの制限による) により、javascript はサーバー側のノンブロッキング言語として理想的な言語になりますか?
ブラウザーは、1 つのスレッドでのみ Javascript を実行します (少なくともドメインごとで、Web ワーカーを除く)。
これは主に単純化のためです。最近まで、誰も Javascript 用のスレッド API を作成していませんでした。
ブラウザーをより簡単に (そしてより速く) 記述できるようにするために、このスレッドはブラウザー UI スレッドです。したがって、Javascript で同期作業 (またはスリープ呼び出し) を行うと、ブラウザーがフリーズします。
これが、同期操作が強く推奨されない理由です。