Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Эта страница была переведена с английского языка силами сообщества. Вы тоже можете внести свой вклад, присоединившись к русскоязычному сообществу MDN Web Docs.

Atomics

BaselineWidely available *

ОбъектAtomics предоставляет атомарные операции как статические методы. Используется вместе с объектомSharedArrayBuffer.

Атомарные операции установлены в модулеAtomics. В отличие от других глобальных объектов,Atomics не является конструктором. Его нельзя использовать вместе с операторомnew или вызывать объектAtomics как функцию. Все свойства и методыAtomics статические (как у объектаMath, к примеру).

Свойства

Atomics[Symbol.toStringTag]

Значение этого свойства - "Atomics".

Методы

Атомарные операции

Когда память разделена, несколько потоков могут читать и записывать одни и те же данные в память. Атомарные операции гарантируют, что ожидаемые значения будут записаны и прочитаны, а операции завершены, прежде чем следующая операция начнёт свою работу, и они не будут прерваны.

Atomics.add()

Добавляет представленное значение к текущему по указанной позиции в массиве. Возвращает предыдущее значение в этой позиции.

Atomics.and()

Вычисляет побитовое AND в указанной позиции массива. Возвращает предыдущее значение в этой позиции.

Atomics.compareExchange()

Сохраняет представленное значение в указанную позицию массива, если оно эквивалентно представленному значению. Возвращает предыдущее значение.

Atomics.exchange()

Сохраняет представленное значение в указанную позицию массива. Возвращает предыдущее значение.

Atomics.load()

Возвращает значение из указанной позиции массива.

Atomics.or()

Вычисляет побитовое OR в указанной позиции массива. Возвращает предыдущее значение в этой позиции.

Atomics.store()

Сохраняет представленное значение в указанную позицию массива. Возвращает значение.

Atomics.sub()

Вычитает представленное значение из текущего по указанной позиции в массиве. Возвращает предыдущее значение в этой позиции.

Atomics.xor()

Вычисляет побитовое XOR в указанной позиции массива. Возвращает предыдущее значение в этой позиции.

Wait и notify

wait() иwake() методы моделируются на основе futexes ("fast user-space mutex" - быстрый мьютекс пользовательского пространства) Linux и предоставляют собой способы ожидания момента, когда определённое состояние не станет true, и обычно используется как блокирующие конструкции.

Atomics.wait()

Проверяет, содержится в указанной позиции массива все ещё представленное значение и спит в ожидании или тайм-аут. Возвращает"ok","not-equal" или"timed-out". Если ожидание не разрешено в вызывающем агенте, тогда выбросит ошибку исключения (большинство браузеров не разрешаютwait() в главном потоке браузера).

Atomics.wake()

Пробуждает некоторых агентов, которые спят в очереди ожидания в указанной позиции массива. Возвращает количество агентов, которые были разбужены.

Atomics.isLockFree(size)

Оптимизационный примитив, который может быть использован для определения использовать ли блокирующие операции или атомарные. Возвращаетtrue, если атомарные операции над массивами с указанным размерами элементов будут выполнены с использованием аппаратных атомарных операций (как противоположность блокирующим). Только для специалистов.

Спецификации

Specification
ECMAScript® 2026 Language Specification
# sec-atomics-object

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

Похожие заметки

До SpiderMonkey 48, финальные имена API и семантика не были ещё реализованы. Изменения между Firefox v. 46 и v. 48:

Смотрите также

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp