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
Atomics.notify(typedArray, index, count)
Parameter
typedArray
-
Ein
Int32Array
oderBigInt64Array
, das eineSharedArrayBuffer
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 einInt32Array
noch einBigInt64Array
ist. RangeError
-
Wird ausgelöst, wenn
index
außerhalb der Grenzen imtypedArray
liegt.
Beispiele
Verwendung von notify
Gegeben ein geteiltes Int32Array
:
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.
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 |