[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Atomics [Back]  [Original]

Atomics - JavaScript | MDN

MDN Web Docs

View in English Always switch to English

Atomics

*

202112

*

Atomics SharedArrayBuffer ArrayBuffer

Atomics new Atomics Atomics Math

wait() notify() Linux futex

Atomics[Symbol.toStringTag]

[Symbol.toStringTag] "Atomics" Object.prototype.toString()

Atomics.add()

Atomics.and()

Atomics.compareExchange()

Atomics.exchange()

Atomics.isLockFree()

true

Atomics.load()

Atomics.notify()

Atomics.or()

Atomics.store()

Atomics.sub()

Atomics.wait()

"ok""not-equal" "time-out" wait()

Atomics.waitAsync()

Atomics.wait Promise

Atomics.xor()

Atomics

js
const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);

ta[0]; // 0
ta[0] = 5; // 5

Atomics.add(ta, 0, 12); // 5
Atomics.load(ta, 0); // 17

Atomics.and(ta, 0, 1); // 17
Atomics.load(ta, 0); // 1

Atomics.compareExchange(ta, 0, 5, 12); // 1
Atomics.load(ta, 0); // 1

Atomics.exchange(ta, 0, 12); // 1
Atomics.load(ta, 0); // 12

Atomics.isLockFree(1); // true
Atomics.isLockFree(2); // true
Atomics.isLockFree(3); // false
Atomics.isLockFree(4); // true

Atomics.or(ta, 0, 1); // 12
Atomics.load(ta, 0); // 13

Atomics.store(ta, 0, 12); // 12

Atomics.sub(ta, 0, 2); // 12
Atomics.load(ta, 0); // 10

Atomics.xor(ta, 0, 1); // 10
Atomics.load(ta, 0); // 11

Int32Array

js
const sab = new SharedArrayBuffer(1024);
const int32 = new Int32Array(sab);

0 0123

js
Atomics.wait(int32, 0, 0);
console.log(int32[0]); // 123

js
console.log(int32[0]); // 0;
Atomics.store(int32, 0, 123);
Atomics.notify(int32, 0, 1);

ECMAScript 2027 LanguageSpecification
# sec-atomics-object


Web Proxy Viewer  |  New URL  |  Original Page