2016-12-06 1 views
0

그래서 나는 이것이 장거리일지도 모르지만 아마도 누군가가 도울 수 있다고 생각합니다.자바 비동기 버퍼 복사본

비동기 적으로 버퍼를 복사 할 수있는 방법이 있습니까? 어떻게 든 블롭을 사용하면 될까요? 아래는 내가 찾고있는 라인의 일부 예입니다 (분명히 설명하지는 않습니다). 클라이언트 측에서 작동하려면이 기능이 필요합니다.

var fromBuffer = new Uint8Array(1056); //just some random data 
var bufferToCopyTo; 
var req = new XMLHttpRequest(); 
req.open("GET", "fromBuffer", true); 
req.responseType = "blob"; 

req.onload = function(e) { 
    bufferToCopyTo = req.response; 

}; 

req.send(); 
//continue while buffer makes a copy in the background? 
+0

정확히 무엇이 필요합니까? – Bergi

+0

클라이언트 측 멀티 스레딩의 경우. 코드의 직렬 부분이 실행되는 동안 백그라운드에서 작업자에게 전달할 버퍼를 복사하려고합니다. 그것 비디오 디코더에 대한 – brianxautumn

+1

구조화 된 복제 알고리즘을 사용하는 ['postMessage'] (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage)와 친구들을 살펴볼 것입니다. – Bergi

답변

1

내가 비동기 버퍼를 복사 할 수있는 방법이 있습니까?

아니요, 다른 코드가 실행되는 동안 버퍼를 복사 할 수 없습니다. 그렇지 않으면 버퍼의 요소에 액세스/쓰기 경쟁 조건이 발생할 수 있습니다.

할 수있는 작업은 복사에 비정상적인 시간이 소요되고 청크가 도움이되지 않는 경우 배경 작업자에게 버퍼를 transfer 버퍼에 복사하고 그 사본을 복사 한 다음 주 스레드. 이것은 물론 버퍼가 복사되는 동안 사용할 수 없다는 것을 의미합니다.

+0

나는 네가 맞다고 두려워. :. – brianxautumn