주요 콘텐츠

send

데이터 대기열을 사용하여 클라이언트와 워커 간에 데이터 전송

설명

send(queue,data)는 값 data가 포함된 메시지 또는 데이터를 queue로 지정된 DataQueue로 보냅니다. afterEach로 지정된 함수에 각각의 보류 중 메시지를 전달하려면 afterEach를 호출합니다.

예제

send(pollablequeue,data)는 값 data가 포함된 메시지 또는 데이터를 pollablequeue로 지정된 PollableDataQueue로 보냅니다. poll를 사용하여 결과를 가져온 다음 data를 응답으로 반환합니다.

클라이언트와 워커 간에 메시지나 데이터를 전송하고 가져오려면 폴링 가능한 데이터 대기열을 sendpoll 함수와 함께 사용하십시오.

예제

예제

모두 축소

DataQueue를 생성하고 afterEach를 사용하여 클라이언트의 대기열에서 데이터를 표시하는 콜백 함수를 설정합니다.

q = parallel.pool.DataQueue;
afterEach(q,@disp);
parfor 루프를 실행하고 대기열에 메시지를 보냅니다. 메시지가 클라이언트에 도착하면 afterEach 콜백 함수인 @disp로 전달됩니다.

parfor i = 1:3
    send(q,i); 
end;
     1

     2

     3

DataQueue를 사용하여 데이터를 수신 대기하는 방법에 대한 자세한 내용은 afterEach 항목을 참조하십시오.

PollableDataQueue 객체를 만듭니다.

p = parallel.pool.PollableDataQueue;
parfeval 루프를 사용하여 메시지를 보냅니다. 예를 들어 값 1이 포함된 데이터를 보냅니다.
f = parfeval(@send,0,p,1);
wait(f);
결과를 폴링합니다.

poll(p)
 ans = 1

PollableDataQueue를 사용하여 데이터를 가져오는 방법에 대한 자세한 내용은 poll 항목을 참조하십시오.

이 예제에서는 parfor를 사용하는 대기 표시줄을 만드는 함수를 보여줍니다. DataQueue를 만들고 afterEach를 사용하여 대기열이 데이터를 수신할 때마다 실행할 함수를 지정합니다. 이 예제에서는 대기 표시줄을 업데이트하는 부 함수를 호출합니다.

parfor 루프를 만들어 MATLAB®에서 계산량이 많은 작업을 수행합니다. send를 사용하여 parfor 루프의 각 반복마다 더미 데이터를 보냅니다. 대기열이 데이터를 수신하면 afterEach가 클라이언트 MATLAB에서 nUpdateWaitbar를 호출하며, 사용자는 대기 표시줄의 진행률을 확인할 수 있습니다.

function a = parforWaitbar

D = parallel.pool.DataQueue;
h = waitbar(0,'Please wait ...');
afterEach(D,@nUpdateWaitbar);

N = 200;
p = 1;

parfor i = 1:N
    a(i) = max(abs(eig(rand(400))));
    send(D,i);
end

    function nUpdateWaitbar(~)
        waitbar(p/N,h);
        p = p + 1;
    end
end

Status bar indicating roughly one third completion.

입력 인수

모두 축소

데이터 대기열로, parallel.pool.DataQueue 객체로 지정됩니다.

예: q = parallel.pool.DataQueue;

데이터 대기열로 전송되는 메시지 또는 데이터로, 직렬화할 수 있는 데이터형으로 지정됩니다.

예: send(queue,data);

폴링 가능한 데이터 대기열로, PollableDataQueue 객체로 지정됩니다.

close 함수를 사용하여 PollableDataQueue를 닫으면 더 이상 대기열에 데이터를 보낼 수 없습니다. 대기열에 데이터를 보내려고 시도하면 오류가 발생합니다. (R2025a 이후)

예: p = parallel.pool.PollableDataQueue;

확장 기능

모두 확장

버전 내역

R2017a에 개발됨