Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

이 페이지는 영어로부터 커뮤니티에 의하여 번역되었습니다. MDN Web Docs에서 한국 커뮤니티에 가입하여 자세히 알아보세요.

SharedArrayBuffer

BaselineWidely available *

SharedArrayBuffer 객체는 제네릭, 고정된 길이의 원시 바이너리 데이터 버퍼를 표현하는데 사용됩니다.ArrayBuffer 객체와 유사하지만, 공유된 메모리상의 뷰를 생성하는데 사용될 수 있습니다.ArrayBuffer 와는 달리,SharedArrayBuffer 는 분리될 수 없습니다.

참고:Spectre 에대한 응답으로 2018년 1월 5일에SharedArrayBuffer 는 모든 주요 브라우저에서 기본적으로 비활성화되어있음을 참고하세요. Chrome 은 사이트 격리 기능을 사용하여 Spectre 스타일 취약점으로부터 보호될 수 있는 플랫폼상의v67 에서 이를 다시 활성화하였습니다.

시도해 보기

// Create a SharedArrayBuffer with a size in bytesconst buffer = new SharedArrayBuffer(8);console.log(buffer.byteLength);// Expected output: 8

구문

js
new SharedArrayBuffer(length);

파라미터

length

생성할 array buffer 의 바이트 크기.

반환 값

크기가 지정된 새로운SharedArrayBuffer 객체입니다. 컨텐츠는 0 으로 초기화됩니다.

설명

할당 및 메모리 공유

SharedArrayBuffer 객체를 사용해 메모리를 하나의 agent(agent 는 웹 페이지의 메인 프로그램 또는 웹 워커 중 하나입니다)와 다른 agent 에서 공유하기 위해,postMessagestructured cloning 이 사용됩니다.

Structured clone 알고리즘은SharedArrayBufferSharedArrayBuffer 상에 맵핑된TypedArray 를 받아들입니다. 이 두 경우에서,SharedArrayBuffer 객체는 수신자(receiver)에게 전달되어 수신 agent(예,ArrayBuffer)의 새로운 비공개의 SharedArrayBuffer 객체를 생성합니다. 하지만, 두SharedArrayBuffer 에 의해 참조되는 공유 데이터 블록은 같은 블록이며, 부수적인 효과로, 하나의 agent 가 다른 agent 에서 보이게 됩니다.

js
var sab = new SharedArrayBuffer(1024);worker.postMessage(sab);

Atomic operation 으로 공유 메모리 수정 및 동기화

공유 메모리는 워커나 메인 스레드에서 동시에 수정 및 생성할 수 있습니다. 시스템(CPU, OS, 브라우저)에따라 변경사항이 전체 컨텍스트로 전파될때까지 약간의 시간이 필요합니다. 동기화를 위해선,atomic 연산이 필요합니다.

SharedArrayBuffer 객체를 사용할 수 있는 API

생성자는new 연산자를 필요로 함

SharedArrayBuffer 생성자는 생성될 때,new 연산자를 필요로 합니다.SharedArrayBuffer 생성자를 new 없이 함수로써 호출하면,TypeError 를 일으킬 것 입니다.

js
var sab = SharedArrayBuffer(1024);// TypeError: calling a builtin SharedArrayBuffer constructor// without new is forbidden
js
var sab = new SharedArrayBuffer(1024);

속성

SharedArrayBuffer.length

값이 1인SharedArrayBuffer 생성자의 length 속성입니다.

SharedArrayBuffer.prototype

모든SharedArrayBuffer 객체에 프로퍼티 추가를 가능하게 해줍니다.

SharedArrayBuffer prototype 객체

모든SharedArrayBuffer 인스턴스는SharedArrayBuffer.prototype 를 상속합니다.

속성

SharedArrayBuffer.prototype.byteLength

배열의 크기 (바이트)입니다. 이것은 배열이 구성 될 때 설정되며 변경할 수 없습니다. 읽기 전용입니다.

메소드

SharedArrayBuffer.prototype.slice(begin, end)

Returns a newSharedArrayBuffer whose contents are a copy of thisSharedArrayBuffer's bytes frombegin, inclusive, up toend, exclusive.begin 또는end 중 하나가 음수이면 처음부터가 아니라 배열 끝의 인덱스를 참조합니다.

명세

Specification
ECMAScript® 2026 Language Specification
# sec-sharedarraybuffer-objects

브라우저 호환성

함께 보기

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp