Как стать автором
Обновить

Комментарии 13

Отличная статья, хочется увидеть более реальные примеры, а то так на ум ничего не приходит…

Заблокировать исполнение основного потока через Atomics.wait, чтобы подождать выполнения асинхронной функции и тем самым превратить её в синхронную, потому что wasm про асинхронный яваскрипт ничего не знает и для вызова асинхронных функций из wasm нужны вот такие замечательные костыли :)

Так в главном же потоке как раз работа Atomics.wait и не гарантирована...

На этот случай есть ещё более замечательные костыли из перехвата serviceworkerом синхронного xmlhttprequest

Интересно смотреть как рожденного ползать пытаются заставить летать.

Личный опыт показал, что если задача требует многопоточности сразу переходить с javascript и не мучать себя. Вариантов много.

У меня остался вопрос, а с планировщиком что-то порешали? На сколько я помню, главный поток из-за планировщика являлся узким местом.

Однако, все сложилось так, что простой обмен данными между основным потоком и воркерами через postMessage имеет свои ограничения и может быть недостаточно хорошим для некоторых задач.

Какие ограничения, почему недостаточно хороший, для каких задач? Какую проблему вы решаете в статье?

Почему вызывает?

Certain features depend on cross-origin isolation

Certain features like SharedArrayBuffer objects or Performance.now() with unthrottled timers are only available if your document has a COOP header with the value same-origin set.

Ну вот в доках конкретно написано на что заголовок влияет. А тут в статье не понятно. Может я поиграться хочу, нужно мне думать про embedding и защищаться?

Но в статье же и написано:

Но перед тем как работать с SharedArrayBuffer очень важно использовать определенные требования по настройке среды - настройку заголовков HTTP.

Или этого текста раньше не было?

В перспективе может где-то и пригодиться. Спасибо за статью!

Можно применить для реализации загрузки всяких метрик и тп? А то всякие pagespeed ругаются на это)

Загрузку всяких метрик можно сделать просто асинхронной, нет смысла выносить ещё и в воркер. Тем более что из воркера "всякие метрики" работать не смогут.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий