Atomics.isLockFree()

Baseline 已广泛支持

此功能已成熟,可在多种设备和浏览器版本上使用。自 2021 年 12 月以来,它已在所有浏览器中可用。

Atomics.isLockFree() 静态方法用于确定当 Atomics 方法应用于给定元素字节大小的类型化数组时,是使用锁还是原子硬件操作。它被设计为一个优化原语,以便高性能算法可以确定在关键部分是使用锁还是原子操作。如果一个原子原语不是无锁的,那么算法提供自己的锁通常会更有效。

试一试

console.log(Atomics.isLockFree(3));
// 3 is not one of the BYTES_PER_ELEMENT values
// Expected output: false

console.log(Atomics.isLockFree(4));
// 4 is one of the BYTES_PER_ELEMENT values
// Expected output: true

语法

js
Atomics.isLockFree(size)

参数

size

要检查的字节大小。

返回值

一个 truefalse 值,指示操作是否为无锁。

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

示例

使用 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)

规范

规范
ECMAScript® 2026 语言规范
# sec-atomics.islockfree

浏览器兼容性

另见