Atomics.notify()
La méthode statique Atomics.notify()
permet de réveiller des agents dormants qui sont dans la file d'attente.
Note : Cette opération ne fonctionne que sur un tableau typé partagé de type Int32Array
.
Syntaxe
js
Atomics.notify(typedArray, index, count);
Paramètres
typedArray
-
Un table typé partagé de type
Int32Array
. index
-
La position sur le tableau
typedArray
pour laquelle réveiller les agents. count
-
Le nombre d'agents dormants à réveiller.
Valeur de retour
Le nombre d'agents réveillés.
Exceptions levées
- Cette méthode lève
TypeError
sitypedArray
n'est pas un tableau typé partagé de typeInt32Array
. - Cette méthode lève
RangeError
siindex
est en dehors des limites detypedArray
.
Exemples
Soit un tableau typé partagé Int32Array
:
js
var sab = new SharedArrayBuffer(1024);
var int32 = new Int32Array(sab);
Un thread de lecture est en sommeil et surveille l'emplacement 0 et s'attend à ce que la valeur soit 0. Tant que cette condition est vérifiée, l'exécution n'ira pas plus loin. Lorsque le thread d'écriture a enregistré une nouvelle valeur, le thread de lecture sera réveillé par le thread d'écriture et renverra la nouvelle valeur (123).
js
Atomics.wait(int32, 0, 0);
console.log(int32[0]); // 123
Un thread d'écriture stocke une nouvelle valeur et notifie le thread de lecture une fois que la valeur a bien été écrite :
js
console.log(int32[0]); // 0;
Atomics.store(int32, 0, 123);
Atomics.notify(int32, 0, 1);
Spécifications
Specification |
---|
ECMAScript Language Specification # sec-atomics.notify |
Compatibilité des navigateurs
BCD tables only load in the browser