JavaScript · Avançado · Inglês · Técnico
SharedArrayBuffer
Bloco de memória binária que pode ser compartilhado entre a thread principal e workers, sem cópia. Dois contextos enxergam os mesmos bytes, o que exige Atomics para evitar corridas.
Onde usar
Aparece em processamento paralelo pesado, como imagens e WebAssembly com threads. No navegador exige isolamento de origem, com os cabeçalhos COOP e COEP, e no Node funciona com worker_threads.
Em código
const sab = new SharedArrayBuffer(4);
const v = new Int32Array(sab);
Atomics.add(v, 0, 5);
console.log(v[0]); // 5Exemplos
Both workers see the same bytes in a SharedArrayBuffer.
Os dois workers enxergam os mesmos bytes num SharedArrayBuffer.
In the browser, SharedArrayBuffer needs cross-origin isolation.
No navegador, o SharedArrayBuffer exige isolamento de origem.
Cuidado
Ler e escrever os mesmos índices a partir de dois workers sem Atomics, gerando condição de corrida.
Sinônimos
memória compartilhada
Antônimos
ArrayBuffer