Atomics.isLockFree()
Atomics.isLockFree()
静态方法用于确定 Atomics
方法在应用于具有给定元素字节大小的类型化数组时是否使用锁或原子硬件操作。它旨在作为优化原语,以便高性能算法可以确定是否在关键部分使用锁或原子操作。如果原子原语不是无锁的,那么算法提供自己的锁定通常更有效。
¥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
语法
参数
返回值
¥Return value
指示操作是否无锁的 true
或 false
值。
¥A true
or false
value indicating whether the operation is lock free.
- 如果
size
为 4,则始终为true
,因为所有已知平台都支持 4 字节原子操作。 - 如果给定的大小不是整数 TypedArray 类型的
BYTES_PER_ELEMENT
属性之一,则始终为false
。
示例
使用 isLockFree
¥Using isLockFree
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)
规范
Specification |
---|
ECMAScript Language Specification # sec-atomics.islockfree |
浏览器兼容性
BCD tables only load in the browser
也可以看看
¥See also