주요 콘텐츠

send

R2026b

데이터 큐를 사용하여 클라이언트와 워커 간에 데이터 전송

설명

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

예제

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

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

예제

예제

모두 축소

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에 개발됨