Что такое `SharedArrayBuffer` и `Atomics`?
УглублённыйУправление памятью
SharedArrayBuffer — буфер памяти, разделяемый между главным потоком и Web Workers
- В отличие от обычного
ArrayBuffer, не копируется при передаче в Worker — оба потока работают с одной памятью
Atomics — объект с атомарными операциями для безопасного доступа к разделяемой памяти:
Atomics.load(arr, index) / Atomics.store(arr, index, value) — атомарное чтение/запись
Atomics.add/sub/and/or/xor — атомарные арифметические и битовые операции
Atomics.wait(arr, index, value) — блокирует поток до изменения значения
Atomics.notify(arr, index, count) — пробуждает ожидающие потоки
Atomics.compareExchange(arr, index, expected, replacement) — CAS-операция
- Требует заголовки
Cross-Origin-Isolation (COOP + COEP) в браузере