JavaScript | Método Atomics.notify()

Entre las operaciones atómicas, hay una operación incorporada Atomics.notify() en JavaScript que se usa para notificar a algunos agentes que están durmiendo en la cola de espera. El método Atomics.notify() devuelve una cantidad de agentes activados. La array de tipo entero, el índice y el recuento se pasan como argumento a la función.
Sintaxis: 
 

Atomics.notify(typedArray, index, count)

Parámetros: Este método acepta tres parámetros como se mencionó anteriormente y se describe a continuación: 
 

  • typedarray: este parámetro especifica una array de tipo entero compartido Int16Array.
  • index: este parámetro especifica la posición en la array, typedArray para esperar.
  • count: este parámetro cuenta el número de agentes durmientes para notificar. Su valor predeterminado es +Infinito.

Valor devuelto: El método Atomics.notify() devuelve el número de agentes activados.
Los siguientes programas ilustran el método Atomics.notify() en JavaScript:
Programa 1: 
 

javascript

const sab = new SharedArrayBuffer(1024);
const int32 = new Int32Array(sab);
int32[0] = 77;
console.log(int32[0]);
console.log(Atomics.store(int32, 0, 123));
console.log(Atomics.notify(int32, 0, 1));

Producción: 
 

77
123
0

Programa 2: 
 

javascript

const sab = new SharedArrayBuffer(1024);
const int32 = new Int32Array(sab);
int32[0] = 77;
console.log(Atomics.load(int32, 66));
console.log(int32[0]);
console.log(Atomics.store(int32, 0, 123));
console.log(Atomics.notify(int32, 6, 1));
console.log(int32[0]);

Producción: 
 

0
77
123
0
123

Excepciones: 
 

  • Si typedArray no es un Int32Array compartido, la operación Atomics.notify( ) arroja un TypeError.
  • Si el índice utilizado como argumento para la operación Atomics.notify() está fuera del límite en typedArray, entonces la operación Atomics.store() arroja un RangeError.

Navegador compatible:

  • Google Chrome
  • Borde de Microsoft
  • Firefox

Publicación traducida automáticamente

Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *