Многопоточность JavaScript с SharedArrayBuffer и Atomics: основы

"Идите уверенно по направлению к мечте. Живите той жизнью, которую вы сами себе придумали." Генри Дэвид Торо

"Существует право, по которому мы можем отнять у человека жизнь, но нет права, по которому мы могли бы отнять у него смерть. Фридрих Ницше"


JavaScript по традиции известен как однопоточный язык. Т.е код выполняется последовательно, и одновременное выполнение нескольких задач может быть проблематичным. Если код сталкивается с тяжелыми вычислительными задачами, это может привести к задержкам и замедлению интерфейса юзера. Поэтому один поток не для каких-либо интенсивных вычислений или обработки больших объемов данных.

Чтобы обойти эти ограничения, были введены Web Workers — они позволяют выполнять JS-код в фоновом потоке, параллельно с основным. Однако, все сложилось так, что простой обмен данными между основным потоком и воркерами через postMessage имеет свои ограничения и может быть недостаточно хорошим для некоторых задач.

Здесь помогают SharedArrayBuffer и Atomics.

Читать далее



"Мудрец счастлив, довольствуясь немногим, а глупцу всего мало; вот почему почти все люди несчастны. Франсуа де Ларошфуко"

"Выживает не самый сильный, а самый восприимчивый к переменам." Чарльз Дарвин

Related posts