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
Atomics.notify(typedArray, index, count)
Parameter
typedArray
-
Eine
Int32Array
oderBigInt64Array
, die einenSharedArrayBuffer
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
keineInt32Array
oderBigInt64Array
ist. RangeError
-
Wird ausgelöst, wenn
index
außerhalb der Grenzen imtypedArray
liegt.
Beispiele
Verwendung von notify
Gegeben eine geteilte Int32Array
:
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.
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:
console.log(int32[0]); // 0;
Atomics.store(int32, 0, 123);
Atomics.notify(int32, 0, 1);
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-atomics.notify |