Atomics.wait()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2021년 12월.
Atomics.wait() 정적 메서드는 Int32Array의 지정된 위치에 지정된 값이
여전히 포함되어 있는지 확인합니다. 만약 그러하다면 잠자기 상태로 있으면서 깨우기(wake-up) 알림을 기다리거나 시간이 만료됩니다.
이 함수는 "ok", "not-equal" 또는 "timed-out" 문자열을 반환합니다.
참고 :
이 연산은 공유 Int32Array 또는 BigInt64Array에서만
작동하며 메인 스레드에서는 허용되지 않을 수 있습니다.
이 메서드의 비차단, 비동기 버전에 대해서는 Atomics.waitAsync()를 참조하세요.
구문
Atomics.wait(typedArray, index, value)
Atomics.wait(typedArray, index, value, timeout)
매개변수
typedArray-
공유된
Int32Array혹은BigInt64Array. index-
typedArray에서의 대기하고 있는 인덱스. value-
테스트할 기대값.
timeoutOptional-
대기 시간(밀리초). 시간이 명시되지 않으면
Infinity입니다.
반환 값
"ok", "not-equal" 혹은 "timed-out" 문자열
예외
typedArray가 허용된 정수형이 아닐 경우TypeError가 발생합니다.index가typedArray의 범위를 벗어날 경우RangeError가 발생합니다.
예제
>wait() 사용하기
공유된 Int32Array에서
const sab = new SharedArrayBuffer(1024);
const int32 = new Int32Array(sab);
읽기 스레드는 0이 될 것으로 예상되는 위치 0에서 잠자기 상태로 대기 중입니다. 이 값이 유지되는 한 계속 진행되지 않습니다. 그러나 쓰기 스레드가 새 값을 저장하면 쓰기 스레드에서 알림을 받고 새 값(123)을 반환합니다.
Atomics.wait(int32, 0, 0);
console.log(int32[0]); // 123
쓰기 스레드는 새 값을 저장하고 쓰기가 완료되면 대기 중인 스레드에 알립니다:
console.log(int32[0]); // 0;
Atomics.store(int32, 0, 123);
Atomics.notify(int32, 0, 1);
명세서
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-atomics.wait> |
브라우저 호환성
Loading…