Atomics.load() en JavaScript

¿Qué es la atómica? 
 

  • Atomics es un objeto en JavaScript que brinda la capacidad de realizar operaciones atómicas como métodos estáticos.
  • Al igual que el objeto Math en JavaScript, todas las propiedades y métodos de Atomics también son estáticos.
  • Los elementos atómicos se utilizan con objetos SharedArrayBuffer (búfer genérico de datos binarios de longitud fija).
  • Los átomos no son constructores como otros objetos globales.
  • Atomics no se puede usar con un nuevo operador o se puede invocar como una función.

Operaciones atómicas en JavaScript 
Múltiples subprocesos pueden leer y escribir los mismos datos en la memoria cuando hay memoria compartida. Para garantizar que los valores predichos se escriban y lean con precisión, no se puede iniciar otra operación hasta que finalice la actual. Las operaciones atómicas tampoco se pueden interrumpir.
Método Atomics.load() 
 

  • Entre las operaciones atómicas, hay una operación incorporada Atomics.load() que se usa para devolver un valor que reside en una posición determinada en una array.
  • El typedarray entero y el índice del valor se pasan como argumento a la función.
  • Atomics.load() devuelve el valor en la posición dada de la array.

Sintaxis: 
 

Atomics.load(typedArray, index)

Parámetros utilizados: 
 

  1. typedarray: es la array de tipo entero compartido que desea modificar.
  2. index: Es la posición en el typedArray desde donde desea cargar un valor.

Valor devuelto: 
Atomics.load() devuelve el valor en la posición dada (typedArray[index]).
A continuación se proporcionan ejemplos de la función anterior.
Ejemplos: 
 

Input : arr[0] = 9;
        Atomics.load(arr, 0);
Output : 9

Input : arr[0] = 3; 
        Atomics.add(arr, 0, 2)
        Atomics.load(arr, 0);
Output : 5

Los códigos para la función anterior se proporcionan a continuación.
Código 1: 
 

javascript

<script>
// creating a SharedArrayBuffer
var buf = new SharedArrayBuffer(25);
var arr = new Uint8Array(buf);
 
// Initialising element at zeroth position of array with 9
arr[0] = 9;
 
// Displaying the SharedArrayBuffer
console.log(Atomics.load(arr, 0));
 
</script>

PRODUCCIÓN : 
 

9

Código 2: 
 

javascript

<script>
// creating a SharedArrayBuffer
var buf = new SharedArrayBuffer(25);
var arr = new Uint8Array(buf);
 
// Initialising element at zeroth position of array with 3
arr[0] = 3;
 
// Displaying the SharedArrayBuffer
console.log(Atomics.load(arr, 0));
 
// Displaying the return value of the Atomics.add() method
console.log(Atomics.add(arr, 0, 2));
 
// Displaying the updated SharedArrayBuffer
console.log(Atomics.load(arr, 0));
</script>

PRODUCCIÓN : 
 

3
3
5

Aplicación: 
siempre que queramos devolver un valor desde una posición específica de una array, usamos la operación Atomics.load() en JavaScript.
Veamos un programa JavaScript: 
 

javascript

<script>
// creating a SharedArrayBuffer
var mybuffer = new SharedArrayBuffer(25);
var myarray = new Uint8Array(mybuffer);
 
// Initialising the element at zeroth position of array
myarray[0] = 40;
 
// Displaying the SharedArrayBuffer
console.log(Atomics.load(myarray, 0));
</script>

Producción : 
 

40

Excepciones:
 

  • Si typedArray no es uno de los tipos de enteros permitidos, la operación Atomics.load( ) genera un TypeError.
  • Si typedArray no es una array tipificada compartida, la operación Atomics.load( ) genera un TypeError.
  • Si el índice utilizado como argumento para la operación Atomics.load() está fuera del límite en typedArray, entonces la operación Atomics.load() arroja un RangeError.

Navegador compatible:

  • Google Chrome
  • Borde de Microsoft
  • Firefox

Publicación traducida automáticamente

Artículo escrito por Shubrodeep Banerjee 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 *