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 einen SharedArrayBuffer
betrachtet.
Sie wird 0
zurückgeben bei nicht-geteilten ArrayBuffer
-Objekten.
Syntax
Atomics.notify(typedArray, index, count)
Parameter
typedArray
-
Ein
Int32Array
oderBigInt64Array
, das einenSharedArrayBuffer
betrachtet. index
-
Die Position im
typedArray
, bei der aufgeweckt werden soll. count
Optional-
Die Anzahl der zu benachrichtigenden schlafenden Agenten. Standardmäßig
Infinity
.
Rückgabewert
- Gibt die Anzahl der aufgeweckten Agenten zurück.
- Gibt
0
zurück, wenn ein nicht-geteiltesArrayBuffer
-Objekt verwendet wird.
Ausnahmen
TypeError
-
Wird ausgelöst, wenn
typedArray
keinInt32Array
oderBigInt64Array
ist, das einenSharedArrayBuffer
betrachtet. RangeError
-
Wird ausgelöst, wenn
index
außerhalb der Grenzen imtypedArray
liegt.
Beispiele
Verwendung von notify
Gegeben ein geteilter Int32Array
:
const sab = new SharedArrayBuffer(1024);
const int32 = new Int32Array(sab);
Ein lesender Thread schläft und wartet an Position 0, die erwartet wird, 0 zu sein. Solange das der Fall ist, wird er nicht weitermachen. Sobald jedoch der schreibende Thread einen neuen Wert gespeichert hat, wird er vom schreibenden Thread benachrichtigt und gibt den neuen Wert (123) zurück.
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 Language Specification # sec-atomics.notify |
Browser-Kompatibilität
BCD tables only load in the browser