Nguyên tử - Tổng quan
Nguyên tử
Atomics là một đối tượng trong JavaScript cung cấp các hoạt động nguyên tử được thực hiện như các phương thức tĩnh. Cũng giống như các method của đối tượng Math, các method và thuộc tính của Atomics cũng là static. Nguyên tử được sử dụng với các đối tượng SharedArrayBuffer.
Các hoạt động nguyên tử được cài đặt trên Mô-đun nguyên tử. Không giống như các đối tượng toàn cục khác, Atomics không phải là một phương thức khởi tạo. Nguyên tử không thể được sử dụng với một toán tử mới hoặc có thể được gọi như một hàm.
Hoạt động nguyên tử
Các hoạt động nguyên tử là không thể gián đoạn.
Khi bộ nhớ được chia sẻ, nhiều luồng có thể đọc hoặc ghi một dữ liệu tồn tại trong bộ nhớ. Vì vậy, nếu bất kỳ dữ liệu nào bị thay đổi, sẽ có mất mát dữ liệu Các hoạt động nguyên tử đảm bảo rằng các giá trị dự đoán (dữ liệu) được ghi và đọc chính xác. Các hoạt động nguyên tử sẽ không bắt đầu cho đến khi và trừ khi hoạt động hiện tại kết thúc, vì vậy không có cách nào để thay đổi dữ liệu hiện có.
Thí dụ
Sau đây là đoạn mã thể hiện việc sử dụng 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>
Đầu ra
Xác minh kết quả.