Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Atomics : méthode statique notify()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨décembre 2021⁩.

La méthode statique notify() de l'objet Atomics permet de réveiller des agents dormants qui sont dans la file d'attente.

Note : Cette opération ne fonctionne qu'avec un Int32Array ou un BigInt64Array qui est une vue sur un SharedArrayBuffer. Elle renverra 0 pour les objets ArrayBuffer non partagés.

Syntaxe

js
Atomics.notify(typedArray, index, count)

Paramètres

typedArray

Un objet Int32Array ou un BigInt64Array qui est une vue sur un SharedArrayBuffer.

index

La position sur le tableau typedArray pour laquelle réveiller les agents.

count

Le nombre d'agents dormants à réveiller. Par défaut, la valeur est Infinity.

Valeur de retour

Retourne le nombre d'agents réveillés, ou 0 si typedArray est une vue sur un objet ArrayBuffer non partagé.

Exceptions

TypeError

Levée si typedArray n'est pas un Int32Array ou un BigInt64Array.

RangeError

Levée si index est en dehors des limites de typedArray.

Exemples

Utilisation de notify()

Étant donné un Int32Array partagé :

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

Un processus de lecture est en sommeil et attend sur l'emplacement 0 parce que la value fournie correspond à ce qui est stocké à l'index fourni. Le processus de lecture n'avancera pas tant que le processus d'écriture n'aura pas appelé Atomics.notify() sur la position 0 du typedArray fourni. Notez que si, après avoir été réveillé, la valeur de l'emplacement 0 n'a pas été modifiée par le processus d'écriture, le processus de lecture ne retournera pas en sommeil, mais continuera.

js
Atomics.wait(int32, 0, 0);
console.log(int32[0]); // 123

Un processus d'écriture stocke une nouvelle valeur et notifie le processus en attente une fois qu'il a écrit :

js
console.log(int32[0]); // 0;
Atomics.store(int32, 0, 123);
Atomics.notify(int32, 0, 1);

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-atomics.notify

Compatibilité des navigateurs

Voir aussi