Atomics.compareExchange()
Atomics.compareExchange()
정적 메서드는 주어진 예상 값이 이전 값과 같으면 배열의 지정된 위치에서
지정된 대체 값을 교환합니다. 예상 값이 이전 값과 같을 경우, 배열의 지정된 위치에서 지정된 대체 값을 교환합니다.
이 메서드는 해당 위치의 이전 값이 해당 위치의 이전 값을 반환합니다. 이 아토믹 연산은 수정된 값이 반환될 때까지 다른 쓰기가
발생하지 않음을 보장합니다.
시도해보기
구문
Atomics.compareExchange(typedArray, index, expectedValue, replacementValue)
매개변수
typedArray
-
정수형 형식화 배열.
Int8Array
,Uint8Array
,Int16Array
,Uint16Array
,Int32Array
,Uint32Array
,BigInt64Array
,BigUint64Array
중 하나. index
-
값을 불러올
typedArray
의 인덱스 expectedValue
-
동일성을 확인하기 위한 값
replacementValue
-
교환할 숫자
반환 값
주어진 위치(typedArray[index]
)의 예전 값.
예외
typedArray
가 허용된 정수형이 아닐 경우TypeError
가 발생합니다.index
가typedArray
의 범위를 벗어날 경우RangeError
가 발생합니다.
예제
compareExchange() 사용하기
const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);
ta[0] = 7;
Atomics.compareExchange(ta, 0, 7, 12); // 이전 값 7을 반환합니다
Atomics.load(ta, 0); // 12
명세서
Specification |
---|
ECMAScript Language Specification # sec-atomics.compareexchange |
브라우저 호환성
BCD tables only load in the browser