Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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 Dezember 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 einen SharedArrayBuffer betrachtet. Sie wird 0 auf nicht-geteilten ArrayBuffer-Objekten zurückgeben.

Syntax

js
Atomics.notify(typedArray, index, count)

Parameter

typedArray

Ein Int32Array oder BigInt64Array, das einen SharedArrayBuffer betrachtet.

index

Die Position im typedArray, bei der aufgeweckt werden soll.

count Optional

Die Anzahl der zu benachrichtigenden schlafenden Agenten. Standardwert ist Infinity.

Rückgabewert

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

Ausnahmen

TypeError

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

RangeError

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

Beispiele

Beachten Sie, dass diese Beispiele nicht direkt von der Konsole oder einer beliebigen Webseite ausgeführt werden können, da SharedArrayBuffer nicht definiert ist, es sei denn, seine Sicherheitsanforderungen sind erfüllt.

Verwendung von Atomics.notify()

Gegebenenfalls ein geteilter Int32Array:

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

Ein lesender Thread schläft und wartet auf Position 0, da der angegebene Wert mit dem gespeicherten Wert an dem angegebenen index übereinstimmt. Der lesende Thread wird sich erst weiterbewegen, wenn der schreibende Thread Atomics.notify() auf Position 0 des angegebenen typedArray aufgerufen hat. Beachten Sie, dass, wenn nach dem Aufwecken der Wert an Position 0 nicht vom schreibenden Thread geändert wurde, der lesende Thread nicht wieder einschlafen wird, sondern fortfahren wird.

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