Open In App

JavaScript Atomics isLockFree() Method

Improve
Improve
Like Article
Like
Save
Share
Report

Atomics.isLockFree() operation returns true if the given size is one of the BYTES_PER_ELEMENT properties of integer TypedArray types else Atomics.isLockFree() operation returns false. A lock-free element can be manipulated without needing a lock and the user does not require to provide its own locking mechanism.

What is BYTES_PER_ELEMENT property of integer TypedArray ? 

  • The TypedArray.BYTES_PER_ELEMENT property represents the size in bytes of each element in a typed array.
  • Since TypedArray objects differ from each other in the number of bytes per element and in the way the bytes are interpreted.
  • The BYTES_PER_ELEMENT constant contains the number of bytes each element in the given TypedArray has.

Applications: 

  • Atomics.isLockFree() are used to check whether an operation is lock free or not.
  • Can be used for the validation of the BYTES_PER_ELEMENT property of integer TypedArray

Syntax: 

Atomics.isLockFree(size) 

Parameters Used: 

  • size : It is the size in bytes to check

Return Value: Atomics.isLockFree() returns either Boolean true indicating the operation is lock free or it returns false. 

Examples of the above function are provided below. 

Input : Atomics.isLockFree(5)
Output : false

Explanation: In this example, “5” is sent as a parameter to the Atomics.isLockFree() method and it returns false because “5” is not one of the BYTES_PER_ELEMENT values.  

Input : Atomics.isLockFree(6)
Output : false

Explanation: In this example, “6” is sent as a parameter to the Atomics.isLockFree() method and it returns false because “6” is not one of the BYTES_PER_ELEMENT values.  

Input : Atomics.isLockFree(2)
Output : true

Explanation: In this example, “2” is sent as a parameter to the Atomics.isLockFree() method and it returns true because “2” is one of the BYTES_PER_ELEMENT values.  

Input : Atomics.isLockFree(4)
Output : true

Explanation: In this example, “4” is sent as a parameter to the Atomics.isLockFree() method and it returns true because “4” is one of the BYTES_PER_ELEMENT values. 

Examples of the above function are provided below.

Example 1:  

javascript




// Displaying the return value of the 
// Atomics.isLockFree() method 
console.log(Atomics.isLockFree(5));
  
// Atomics.isLockFree() will return false since
// 5 is not one of the BYTES_PER_ELEMENT values


Output :  

false

Example 2: 

javascript




// Displaying the return value of
// the Atomics.isLockFree() method 
console.log(Atomics.isLockFree(6));
  
// Atomics.isLockFree() will return false since 6 
// is not one of the BYTES_PER_ELEMENT values


Output : 

false

Example 3: 

javascript




// Displaying the return value
// of the Atomics.isLockFree() method 
console.log(Atomics.isLockFree(2));
  
// Atomics.isLockFree() will return true since 
// 2 is one of the BYTES_PER_ELEMENT values


Output :  

true

Example 4: 

javascript




// Displaying the return value of the
// Atomics.isLockFree() method 
console.log(Atomics.isLockFree(4));
  
// Atomics.isLockFree() will return true since
//  4 is one of the BYTES_PER_ELEMENT values


OUTPUT :  

true

Application: Whenever we want to check whether an operation is lock-free or not or we want to validate the BYTES_PER_ELEMENT property of integer TypedArray, we use the Atomics.isLockFree() operation in JavaScript.

Example:

javascript




// Displaying the return value of 
// the Atomics.isLockFree() method 
console.log(Atomics.isLockFree(8));
  
// Atomics.isLockFree() will return true since 8 
// is one of the BYTES_PER_ELEMENT(Float64Array) values


Output : 

true

Exceptions : 

  • If the typedArray is not one of the allowed integer types then the Atomics.isLockFree( ) operation throws a TypeError.
  • If the typedArray is not a shared typed array then the Atomics.isLockFree( ) operation throws a TypeError.

Supported Browser:

  • Google Chrome
  • Microsoft Edge
  • Firefox
  • Opera
  • Safari

We have a complete list of Javascript Atomic methods, to check those please go through this JavaScript Atomics Complete Reference article.

We have a Cheat Sheet on Javascript where we covered all the important topics of Javascript to check those please go through Javascript Cheat Sheet-A Basic guide to JavaScript.  



Last Updated : 22 May, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads