Atomics.isLockFree()
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-
要检查的字节大小。
返回值
一个 true 或 false 值,指示操作是否为无锁。
- 如果
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 |
浏览器兼容性
加载中…