Atomics.isLockFree()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since December 2021.

Atomics.isLockFree() は静的メソッドで、 Atomics のメソッドが、要素のバイト数が指定された大きさである型付き配列に適用された場合、ロックまたは不可分のハードウェア操作を使用するかどうかを見極めるために使用されます。これは、最適化のためのプリミティブとして意図されており、高性能アルゴリズムが、クリティカルセクションでロックを使用するか、不可分操作を使用するかを決定できるようにするた���のものです。不可分プリミティブがロックフリーでない場合、アルゴリズムが自分自身でロックを提供した方が効率的な場合が多いです。

試してみましょう

console.log(Atomics.isLockFree(3));
// 3 is not one of the BYTES_PER_ELEMENT values
// 予想される結果: false

console.log(Atomics.isLockFree(4));
// 4 is one of the BYTES_PER_ELEMENT values
// 予想される結果: true

構文

js
Atomics.isLockFree(size)

引数

size

チェックするバイト単位の大きさです。

返値

true または false で、操作がロック不要であるかどうかを示します。

  • size が 4 の場合は常に true です。これは、すべての既知のプラットフォームが 4 バイトの不可分操作に対応しているからです。
  • 指定された大きさが整数型の TypedArray の BYTES_PER_ELEMENT プロパティのいずれでもない場合は、常に false を返します。

isLockFree の使用

js
Atomics.isLockFree(1); // true (プラットフォーム依存)
Atomics.isLockFree(2); // true (プラットフォーム依存)
Atomics.isLockFree(3); // false
Atomics.isLockFree(4); // true
Atomics.isLockFree(5); // false
Atomics.isLockFree(6); // false
Atomics.isLockFree(7); // false
Atomics.isLockFree(8); // true (プラットフォーム依存)

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-atomics.islockfree

ブラウザーの互換性

関連情報