Я понимаю, что в современных браузерах JS engnines (например, V8, Spidermonkey, Chakra и т. Д.) Используются пулы потоков внутри, хотя только один поток (запуск цикла событий) предоставляется JS-программисту.Почему современные браузерные JS-двигатели многопоточные?
Очевидно, что (редко используемым) веб-работникам требуется несколько потоков (или несколько процессов) - в противном случае они не могли бы использовать несколько ядер процессора. Мой вопрос: Отправлено от Web Workers, в чем преимущество внедрения JS-движка с несколькими потоками?
Почему JS-двигатель не всегда остается однопоточным, внутренне полагаясь на тот же цикл событий, который используют программисты JS, используя неблокирующие вызовы ОС, когда это необходимо для ввода IO?
Чтобы уточнить: JS-движок использует пул потоков, даже если пользователь открыл только одно окно с помощью одной вкладки.
Edit: это отвечает here
Браузер просматривает сразу несколько веб-страниц одновременно? –
@EdHeal Я отредактировал мой вопрос, чтобы уточнить. – max
@max Даже с одной вкладкой пользовательский интерфейс браузера также может использовать JS в другом процессе. – Oriol