Open In App

JavaScript Atomics store() Method

What is Atomics?

Atomics Operations in JavaScript



Multiple threads can read and write the same data in memory when there shared memory is. To ensure that predicted values are written and read accurately, another operation cannot start until and unless the current one finishes. Atomic operations also cannot be interrupted.

Atomics.store() Method



Syntax:

Atomics.store(typedArray, index, value)

Parameters Used:

Return Value: Atomics.store() returns the value that has been stored.

Examples of the above function are provided below.

Examples:

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

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

Codes for the above function are provided below.

Code 1:




// creating a SharedArrayBuffer
let buf = new SharedArrayBuffer(25);
let arr = new Uint8Array(buf);
 
// Initializing element at zeroth position of array with 9
arr[0] = 9;
 
// Displaying the SharedArrayBuffer
console.log(Atomics.load(arr, 0));
 
// Displaying the return value of the Atomics.store() method
console.log(Atomics.store(arr, 0, 3));
 
// Displaying the updated SharedArrayBuffer
console.log(Atomics.load(arr, 0));

Output:

9
3
3

Code 2:




// creating a SharedArrayBuffer
let buf = new SharedArrayBuffer(25);
let arr = new Uint8Array(buf);
 
// Initializing 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.store() method
console.log(Atomics.store(arr, 0, 2));
 
// Displaying the updated SharedArrayBuffer
console.log(Atomics.load(arr, 0));

Output:

3
2
2

Application:

Whenever we want to store a value at a specific position of an array and also want to return the same value, we use the Atomics.store() operation in JavaScript.

Let’s see a JavaScript Program:




// creating a SharedArrayBuffer
let mybuffer = new SharedArrayBuffer(25);
let myarray = new Uint8Array(mybuffer);
 
// Initializing the element at zeroth position of array
myarray[0] = 40;
 
// Displaying the return value of the Atomics.store() method
console.log(Atomics.store(myarray, 0, 20));
 
// Displaying the updated SharedArrayBuffer
console.log(Atomics.load(myarray, 0));

Output:

20
20

Exceptions:


Article Tags :