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

语法

¥Syntax

js
Atomics.isLockFree(size)

参数

¥Parameters

size

要检查的大小(以字节为单位)。

返回值

¥Return value

指示操作是否无锁的 truefalse 值。

¥A true or false value indicating whether the operation is lock free.

  • 如果 size 为 4,则始终为 true,因为所有已知平台都支持 4 字节原子操作。
  • 如果给定的大小不是整数 TypedArray 类型的 BYTES_PER_ELEMENT 属性之一,则始终为 false

示例

¥Examples

使用 isLockFree

¥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)

规范

Specification
ECMAScript Language Specification
# sec-atomics.islockfree

¥Specifications

浏览器兼容性

BCD tables only load in the browser

¥Browser compatibility

也可以看看

¥See also