Spec-Zone.ru › JavaScript

Atomics.isLockFree()

Базовый уровень Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с декабря 2021 года.

Статический метод Atomics.isLockFree() используется для определения того, используют ли методы Atomics блокировки или атомарные аппаратные операции при применении к типизированным массивам с заданным размером элемента в байтах. Он предназначен как примитив оптимизации, чтобы высокопроизводительные алгоритмы могли определить, использовать ли блокировки или атомарные операции в критических секциях. Если атомарный примитив не является свободным от блокировок (lock-free), алгоритму зачастую более эффективно предоставить собственный механизм блокировки.

Попробуйте

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

Синтаксис

Atomics.isLockFree(size)

Параметры

size
Размер в байтах для проверки.

Возвращаемое значение

Значение true или false, указывающее, является ли операция свободной от блокировок (lock free).

  • Всегда true, если size равно 4, поскольку все известные платформы поддерживают 4-байтовые атомарные операции.
  • Всегда false, если заданный размер не является одним из значений свойства BYTES_PER_ELEMENT целочисленных типов TypedArray.

Примеры

Использование Atomics.isLockFree()

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® 2027 Language Specification
# sec-atomics.islockfree

Совместимость с браузерами

Настольные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
isLockFree
68
79
78
55
15.2
89
79
63
15.2
15.0
89
15.2
1.0.0
1.0
8.10.0

См. также

  • Atomics

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Atomics/isLockFree

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API