Open In App

Atomics.xor() In JavaScript

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.xor() Method

Syntax:



Atomics.xor(typedArray, index, value)

Parameters Used:

  1. typedarray: It is the shared integer typed array Int8Array, Uint8Array, Int16Array etc.
  2. index: It is the position in the typedArray to compute bitwise XOR.
  3. value: The number to compute bitwise XOR with.

Return value: Atomics.xor() returns the old value at the given position(typedArray[index]). Examples of the above function are given below: Examples:

Input : arr[0] = 7
        Atomics.xor(arr, 0, 2)
Output : 5
Input : arr[0] = 4
        Atomics.xor(arr, 0, 3)
Output : 7

Code for the above function are provided below: Code 1: 




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

OUTPUT:

7
5
5

Code 2: 




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

OUTPUT:

3
6
6

Application: Whenever we want to compute bitwise XOR with any value and want to return the computed value, we use Atomics.xor() 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
myarray[0] = 15;
 
// Displaying the return value of the Atomics.xor() method
console.log(Atomics.xor(myarray, 0, 10));
 
// Displaying the updated SharedArrayBuffer
console.log(Atomics.load(myarray, 0));

OUTPUT:

5
5

Exceptions:


Article Tags :