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)
Спецификации
Совместимость с браузерами
| Настольные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 |
См. также
© 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