Atomics.notify()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since December 2021.

Die Atomics.notify() statische Methode benachrichtigt einige Agenten, die in der Warteschlange schlafen.

Hinweis: Diese Operation funktioniert nur mit einer Int32Array oder BigInt64Array, die einen SharedArrayBuffer anzeigt. Es wird 0 bei nicht-geteilten ArrayBuffer-Objekten zurückgeben.

Syntax

js
Atomics.notify(typedArray, index, count)

Parameter

typedArray

Eine Int32Array oder BigInt64Array, die einen SharedArrayBuffer anzeigt.

index

Die Position im typedArray, an der aufgeweckt werden soll.

count Optional

Die Anzahl der schlafenden Agenten, die benachrichtigt werden sollen. Standardwert ist Infinity.

Rückgabewert

Gibt die Anzahl der aufgeweckten Agenten zurück oder 0, wenn typedArray eine Ansicht auf einen nicht-geteilten ArrayBuffer ist.

Ausnahmen

TypeError

Wird ausgelöst, wenn typedArray keine Int32Array oder BigInt64Array ist.

RangeError

Wird ausgelöst, wenn index außerhalb der Grenzen im typedArray liegt.

Beispiele

Verwendung von notify

Gegeben eine geteilte Int32Array:

js
const sab = new SharedArrayBuffer(1024);
const int32 = new Int32Array(sab);

Ein lesender Thread schläft und wartet auf Position 0, weil der angegebene value mit dem übereinstimmt, was an dem angegebenen index gespeichert ist. Der lesende Thread wird nicht fortfahren, bis der schreibende Thread Atomics.notify() auf Position 0 des angegebenen typedArray aufgerufen hat. Beachten Sie, dass der lesende Thread, nachdem er aufgeweckt wurde, nicht wieder schlafen geht, außer der Wert an Position 0 wurde nicht vom schreibenden Thread geändert, sondern setzt seine Arbeit fort.

js
Atomics.wait(int32, 0, 0);
console.log(int32[0]); // 123

Ein schreibender Thread speichert einen neuen Wert und benachrichtigt den wartenden Thread, sobald er geschrieben hat:

js
console.log(int32[0]); // 0;
Atomics.store(int32, 0, 123);
Atomics.notify(int32, 0, 1);

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-atomics.notify

Browser-Kompatibilität

Siehe auch