원 자학-개요
원 자학
Atomics는 정적 메서드로 수행 할 원자 작업을 제공하는 JavaScript의 개체입니다. Math 객체의 메서드와 마찬가지로 Atomics의 메서드와 속성도 정적입니다. Atomics는 SharedArrayBuffer 객체와 함께 사용됩니다.
Atomic 작업은 Atomics 모듈에 설치됩니다. 다른 전역 개체와 달리 Atomics는 생성자가 아닙니다. Atomics는 new 연산자와 함께 사용할 수 없거나 함수로 호출 할 수 있습니다.
원자 연산
원자 적 작업은 중단되지 않습니다.
메모리가 공유되면 여러 스레드가 메모리에있는 기존 데이터를 읽거나 쓸 수 있습니다. 따라서 데이터가 변경되면 데이터 손실이 발생합니다. 원자 적 작업은 예측 된 값 (데이터)을 정확하게 쓰고 읽도록합니다. 원자 적 작업은 현재 작업이 완료 될 때까지 시작되지 않으므로 기존 데이터를 변경할 방법이 없습니다.
예
다음은 JavaScript Atomics Operation의 사용을 보여주는 코드입니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Atomics Example</title>
<style>
.result {
font-size: 20px;
border: 1px solid black;
}
</style>
</head>
<body onLoad="operate();">
<h1>JavaScript Atomics Properties</h1>
<div class="result"></div>
<p>Atomics.add(arr, 0, 2)</p>
<p>Atomics.load(arr, 0)</p>
<script>
function operate(){
let container = document.querySelector(".result");
// create a SharedArrayBuffer
var buffer = new SharedArrayBuffer(25);
var arr = new Uint8Array(buffer);
// Initialise element at zeroth position of array with 6
arr[0] = 6;
container.innerHTML = Atomics.add(arr, 0, 2) + '<br/>' + Atomics.load(arr, 0);
}
</script>
</body>
</html>
산출
결과를 확인하십시오.