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 statische Methode Atomics.notify() benachrichtigt einige Agenten, die in der Wartewarteschlange schlafen.

Hinweis: Diese Operation funktioniert nur mit einem Int32Array oder BigInt64Array, das eine SharedArrayBuffer betrachtet. Es wird 0 bei nicht-gemeinsamen ArrayBuffer-Objekten zurückgeben.

Syntax

js
Atomics.notify(typedArray, index, count)

Parameter

typedArray

Ein Int32Array oder BigInt64Array, das eine SharedArrayBuffer betrachtet.

index

Die Position im typedArray, die geweckt werden soll.

count Optional

Die Anzahl der zu benachrichtigenden schlafenden Agenten. Standardmäßig ist dies Infinity.

Rückgabewert

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

Ausnahmen

TypeError

Wird ausgelöst, wenn typedArray weder ein Int32Array noch ein BigInt64Array ist.

RangeError

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

Beispiele

Verwendung von notify

Gegeben ein geteiltes Int32Array:

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

Ein lesender Thread schläft und wartet an Position 0, weil der bereitgestellte value mit dem am bereitgestellten index gespeicherten Wert übereinstimmt. Der lesende Thread wird erst weitermachen, wenn der schreibende Thread Atomics.notify() auf Position 0 des bereitgestellten typedArray aufgerufen hat. Beachten Sie, dass der lesende Thread, wenn nach dem Aufwachen der Wert an Position 0 nicht vom schreibenden Thread geändert wurde, nicht wieder schlafen geht, sondern weitermacht.

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