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

瀏覽器相容性

另見