Atomics.isLockFree()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since December 2021.
The Atomics.isLockFree()
static method is used to determine whether the Atomics
methods use locks or atomic hardware operations when applied to typed arrays with the given element byte size. It is intended as an optimization primitive, so that high-performance algorithms can determine whether to use locks or atomic operations in critical sections. If an atomic primitive is not lock-free, it is often more efficient for an algorithm to provide its own locking.
Try it
Syntax
js
Atomics.isLockFree(size)
Parameters
size
-
The size in bytes to check.
Return value
A true
or false
value indicating whether the operation is lock free.
- Always
true
ifsize
is 4, because all known platforms support 4-byte atomic operations. - Always
false
if the given size is not one of theBYTES_PER_ELEMENT
property of integer TypedArray types.
Examples
Using isLockFree
js
Atomics.isLockFree(1); // true (platform-dependent)
Atomics.isLockFree(2); // true (platform-dependent)
Atomics.isLockFree(3); // false
Atomics.isLockFree(4); // true
Atomics.isLockFree(5); // false
Atomics.isLockFree(6); // false
Atomics.isLockFree(7); // false
Atomics.isLockFree(8); // true (platform-dependent)
Specifications
Specification |
---|
ECMAScript Language Specification # sec-atomics.islockfree |
Browser compatibility
BCD tables only load in the browser