NATIVE

settings_applicationsObject

NATIVE

Editing
  • account_tree
  • bug_report

ObjectAtomics

원자(atomic) 연산 작업을 수행하기 위한 정적 멤버를 포함한 객체이다.

설명

원자 연산은 보통 데이터베이스에서 활용되는 개념이다. 최소 단위의 연산으로 나누어 전체적 연산의 성공 여부를 판단하는 것으로 데이터베이스에서 트랜잭션(transaction) 처리에 사용되는 메커니즘이다.

ECMAscript에서는 SharedArrayBufferArrayBuffer 객체와 함께 사용되는 Math 객체의 역할과 같은 다양한 API를 지원하는 객체이다. SharedArrayBuffer 객체와 ArrayBuffer 객체는 고정된 크기의 메모리 공간에 바이너리 데이터의 저장과 관리에 관여하는 객체들이다. Atomics 객체는 SharedArrayBuffer 객체와 ArrayBuffer 객체에서 다루는 바이너리 데이터의 원자성 작업을 보장한다.

원자성 작업(atomic operations)

예측 가능한 값을  쓰고 읽으며 현재 쓰기 작업이 이루어지는 상태인 경우에 다른 쓰기 작업은 원천적으로 금지하여 작업을 보장한다.

원자성 작업을 적용하는 이유는 SharedArrayBuffer 객체의 경우처럼 메모리를 공유하는 경우에 여러 개의 쓰레드(thread)에서 동일한 데이터를 읽고 쓸 수 있기 때문이다.

하위 트리 탐색

  • Static

    정적(static) 멤버를 의미하며 인스턴스(instance)에 상속되어 사용할 수 없고 오로지 하위를 포함하여 객체(object) 또는 인터페이스(interface) 자신에서 해당 멤버에 접근이 가능하다. 

    • Methods

      • add()

        배열의 지정된 위치에 지정된 값을 추가하고 해당 위치의 이전 값을 반환한다. 수정된 값이 반영될 때 까지 다른 쓰기 시도가 발생하지 않는다.

      • and()

        지정된 위치에서 지정된 값을 사용하여 비트 단위 AND를 연산하고 해당 위치에서 이전 값을 반환한다. 수정된 값이 다시 기록될 때 까지 다른 쓰기가 금지된다.

      • compareExchange()

        지정될 값이 이전 값과 같은 경우 배열의 지정된 위치에서 지정된 값으로 대체한다. 지정될 값과 동일 여부와 상관없이 이전 값을 반환한다. 수정된 값이 다시 기록될 때 까지 다른 쓰기가 금지된다.

      • exchange()

        지정된 위치에 지정된 값을 저장하고 해당 위치의 이전 값을 반환한다. 이전 값 읽기와 새로운 값 쓰기 사이에 다른 쓰기가 발생하지 않는다.

      • isLockFree()

        지정된 요소 바이트 크기를 가진 형식화된 배열에 적용될 때 잠금 또는 원자적 하드웨어 작업을 사용하는지 여부를 결정하는 데 사용된다. 주어진 크기가 정수 TypeArray 유형의 BYTES_PER_ELEMENT 속성 중 하나가 아닌 경우 false를 반환한다.

      • load()

        지정된 위치의 값을 반환한다.

      • notify()

        SharedArrayBuffer 객체처럼 공유되는 경우 대기열에서 휴면 상태(wait)에 있는 쓰레드(thread)에게 알린다.

      • or()

        지정된 위치의 지정된 값을 사용해서 비트(bit)별 OR 연산을 하고 이전 값을 반환한다. 수정된 값이 다시 기록될 때 까지 다른 쓰기가 금지된다.

      • store()

        지정된 위치에 지정된 값을 저장하고 해당 값을 반환한다.

      • sub()

        지정된 위치에서 지정된 값을 빼고 이전 값을 반환한다. 수정된 값이 다시 기록될 때 까지 다른 쓰기가 금지된다.

      • wait()

        SharedArrayBuffer 공유 메모리 객체에 지정된 값이 포함되어 있는지 확인한다. 포함한다면 notify() 메소드의 알림을 기다리는 대기 상태로 둔다.

      • waitSync()

        sharedArrayBuffer 객체에서 비동기적으로 대기하고 Promise 객체를 반환한다.

      • xor()

        지정된 위치에서 지정된 값을 사용하여 비트(bit)별 XOR 연산을 하고 이전 값을 반환한다. 수정된 값이 다시 기록될 때 까지 다른 쓰기가 금지된다.

버전 명세

ECMAScript 2024(15th Edition)
#sec-atomics-object

지원 웹브라우저