Open In App

Atomics.and() In JavaScript

What is Atomics? 

Atomics Operations in JavaScript: Multiple threads can read and write the same data in memory when their 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.and() Method:

Syntax: 



Atomics.and(typedArray, index, value)

Parameters Used: This method accepts three parameters which are described below: 

Return value: The Atomics.and() method returns the old value at the given position(typedArray[index]).

Examples:  

Input : arr[0] = 5
        Atomics.and(arr, 0, 3)
Output : 1

Input : arr[0] = 4
        Atomics.and(arr, 0, 6)
Output : 4

The below programs illustrate the Atomics.and() method:

Example 1: 




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

Output: 

5
1
1

Example 2: 




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

Output: 

7
2
2

Application: Whenever we want to compute bitwise AND with any value and want to return the computed value, we use Atomics.and() operation in JavaScript.

Let’s see a JavaScript Program : 




// creating a SharedArrayBuffer
let mybuffer = new SharedArrayBuffer(25);
let myarray = new Uint8Array(mybuffer);
 
// Initialising the element at zeroth
// position of array with 11
myarray[0] = 11;
 
// Displaying the return value of the
// Atomics.and() method
console.log(Atomics.and(myarray, 0, 13));
 
// Displaying the updated SharedArrayBuffer
console.log(Atomics.load(myarray, 0));

Output: 

9
9

Exceptions: 

Supported Browser:


Article Tags :