Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Phương thức Atomics.and() trong JavaScript

Đối tượng Atomics cung cấp các thao tác bitwise nguyên tử. Phương thức Atomics.and() thực hiện phép AND bitwise giữa giá trị tại vị trí chỉ định và giá trị cho trước, lưu kết quả và trả về giá trị cũ.

Cú pháp

Atomics.and(typedArray, index, value)
  • typedArray: Mảng kiểu số nguyên (Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, BigInt64Array, BigUint64Array)
  • index: Vị trí trong mảng
  • value: Giá trị để AND bitwise

Ví dụ 1

const buffer = new SharedArrayBuffer(16);
const data = new Uint8Array(buffer);
data[0] = 3;  // 00000011

console.log(Atomics.add(data, 0, 3)); // 3 (giá trị cũ - ví dụ gốc dùng add)
console.log(Atomics.load(data, 0));   // 6

Ví dụ 2 - Sử dụng and() thực tế

const buffer = new SharedArrayBuffer(16);
const data = new Uint8Array(buffer);
data[0] = 15; // 00001111

const old = Atomics.and(data, 0, 7);  // 7 = 00000111
console.log("Giá trị cũ:", old);       // 15
console.log("Giá trị mới:", data[0]);  // 7 (15 & 7 = 7)

Bảng chân trị AND

aba & b
000
010
100
111

Ứng dụng thực tế

  • Xóa cờ (clear flags) trong bitmask nguyên tử
  • Kiểm tra bit (masking) an toàn cho đa luồng
  • Triển khai bộ khóa (spinlock) dựa trên bit

Lưu ý

  • Chỉ hỗ trợ kiểu số nguyên
  • Thao tác nguyên tử - không bị ngắt quãng
  • Trả về giá trị trước khi cập nhật