Работают ли веб-работники должным образом, если у клиента только одноядерный процессор? - PullRequest
0 голосов
/ 10 апреля 2019

Чистое любопытство, мне просто интересно, есть ли какой-нибудь случай, когда веб-работнику удалось бы выполнить отдельный поток, если в ЦП доступен только один поток, возможно, с некоторой виртуализацией, с использованием графического процессора?

Спасибо!

1 Ответ

1 голос
/ 14 апреля 2019

Кажется, что у вас есть две предпосылки: во-первых, веб-работники используют потоки; и во-вторых, что многопоточность требует нескольких ядер. Но ни то, ни другое не является правдой.

По первому: нет фактического требования, чтобы веб-работники были реализованы с помощью потоков. Пользовательские агенты могут свободно использовать процессы, потоки или любую «эквивалентную конструкцию» [см. Спецификацию веб-работника]. Они могут использовать многозадачность в одном потоке, если захотят. Веб-рабочие сценарии запускаются одновременно, но не обязательно параллельно JavaScript браузера.

На втором: вполне возможно, чтобы несколько потоков работали на одном процессоре. Он работает так же, как параллельные асинхронные функции в однопоточном JavaScript.

Так что да, в ответ на ваш вопрос: веб-работники действительно работают на одном основном клиенте. Вы потеряете некоторые преимущества в производительности, но код будет работать так же, как в многоядерной системе.

...