원자
원자 정적 메서드로 수행할 원자적 작업을 제공하는 JavaScript의 개체입니다. 수학 방법과 마찬가지로 개체, Atomic 의 메서드 및 속성 또한 정적입니다. 원자 SharedArrayBuffer 와 함께 사용됩니다. 개체.
아트로믹 작업은 Atomic Module에 설치됩니다. . 다른 전역 개체와 달리 원자 생성자가 아닙니다. . 원자 새 연산자와 함께 사용할 수 없습니다. 또는 함수로 호출될 수 있습니다.
원자적 연산
원자 작업은 무중단이 아닙니다. . 메모리가 공유되면 여러 스레드가 메모리에 존재하는 데이터를 읽거나 쓸 수 있습니다. 따라서 데이터가 변경되면 데이터가 손실됩니다. Atomic 연산은 예측된 값(데이터)이 정확하게 쓰여지고 읽도록 합니다. 현재 작업이 완료될 때까지 원자적 작업은 시작되지 않으므로 기존 데이터를 변경할 수 있는 방법이 없습니다.
이제 Automics 중 하나에 대해 논의해 보겠습니다. 방법.
Atomics.add()
Atomics.Add() 배열의 주어진 위치에 주어진 값을 추가하고 해당 위치의 이전 값을 반환하는 데 사용됩니다. 인터럽트가 허용되지 않으므로 수정된 값이 반환될 때까지 다른 쓰기 기능이 발생할 수 없습니다.
구문
Atomics.add(typedArray, index, value)
매개변수
유형이 지정된 배열
수정할 공유 배열 정수입니다.
색인
새 값을 추가할 배열의 인덱스입니다.
값
우리가 더할 숫자에 불과합니다.
반환된 값
Atomics.add()는 주어진 위치(typedArray[index])에서 이전 값을 반환합니다.
예
<html> <body> <script type="text/javascript"> // creating a SharedArrayBuffer var buffer = new SharedArrayBuffer(25); var arr = new Uint8Array(buffer); // Initialising element at zeroth position of array with 6 arr[0] = 6; // Displaying the return value of the Atomics.add() method document.write(Atomics.add(arr, 0, 2)); document.write("</br>"); // Displaying the updated SharedArrayBuffer document.write(Atomics.load(arr, 0)); </script> </body> </html>
출력
6 8