JavaScript Atomics isLockFree() Method
Last Updated :
22 May, 2023
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.
Similar Reads
JavaScript Atomics add() Method
Among the Atomic Operations, there is a method Atomics.add() that is used to add a given value at a given position in an array and return the old value at that position. No other write operation can happen until the modified value is written back.Syntax: Atomics.add(typedArray, index, value) Paramet
2 min read
JavaScript Atomics and( ) Method
Among the Atomic Operations, there is a method Atomics.and() that is used to compute a bitwise AND operation with a given value at a given position in an array. The old value at that position is returned by Atomics.and() function. No other write operation can happen until the modified value is writt
2 min read
JavaScript Atomics compareExchange( ) Method
Atomics.compareExchange() Method: Among the Atomic Operations, there is an inbuilt method Atomics.compareExchange() which is used to exchange a value at a specific position of an array if the passed parameter is equal to the old value residing in the array. Atomics.compareExchange( ) operation in Ja
4 min read
JavaScript Atomics exchange( ) Method
Among the Atomic Operations, there is an inbuilt operation Atomics.exchange() that is used to exchange and store a new value at a specific position in an array. Atomics.exchange( ) operation in JavaScript returns the old value at that position of the array which has been exchanged with a new value.
3 min read
JavaScript Atomics isLockFree() Method
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 locki
3 min read
JavaScript Atomics load() Method
Among the Atomic Operations, there is an inbuilt operation Atomics.load() that is used to return a value that is residing at a given position in an array. The integer typedarray and the index of the value are passed as an argument to the function. Atomics.load() returns the value at the given positi
3 min read
JavaScript Atomics notify() Method
The Atomics.notify() is an in-built method in JavaScript that is used to notify some agents that are sleeping in the wait queue. The Atomics.notify() method returns a number of woken-up agents. The integer-typed array, index, and count are passed as an argument to the function. Syntax:Â Atomics.noti
2 min read
JavaScript Atomics or() Method
Among the Atomic Operations, there is a method Atomics.or() that is used to compute a bitwise OR operation with a given value at a given position in an array. The old value at that position is returned by Atomics.or() function. No other write operation can happen until the modified value is written
2 min read
JavaScript Atomics store() Method
What is Atomics? The Atomics is an object in JavaScript which provides the ability to perform atomic operations as static methods.Just like the Math object in JavaScript all the properties and methods of Atomics are also static.Atomics are used with SharedArrayBuffer(generic fixed-length binary data
3 min read
JavaScript Atomics sub() Method
Among the Atomic Operations, there is a method Atomics.sub() that is used to subtract a given value at a given position in the array and return the old value at that position. No other write operation can happen until the modified value is written back. Syntax:Â Atomics.sub(typedArray, index, value)
3 min read