отправка

Отправьте данные от рабочего клиенту, использующему очередь данных

Синтаксис

send(queue, data)
send(pollablequeue, data)

Описание

пример

send(queue, data) отправляет сообщение или данные со значением data к parallel.pool.DataQueue, заданному queue. Вызовите afterEach, чтобы передать каждое из незаконченных сообщений к функции, заданной afterEach.

пример

send(pollablequeue, data) отправляет сообщение или данные со значением data к parallel.pool.PollableDataQueue, заданному pollablequeue. Получите результат с помощью poll (pollablequeue) и возвратите data как ответ.

Используйте send и функции poll вместе использование pollable очереди данных, чтобы передать и получить сообщения или данные от различных рабочих.

Примеры

свернуть все

Создайте 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;
Запустите parfor - цикл и отправьте сообщение, такое как данные со значением 1.
parfor i = 1
    send(p, i); 
end
Опросите относительно результата.

poll(p)
     1

Для получения дополнительной информации при получении данных с помощью PollableDataQueue, смотрите poll.

Этот пример показывает функцию, которая создает parfor, ожидают панель. Создайте DataQueue и используйте afterEach, чтобы задать функцию, чтобы выполниться каждый раз, когда очередь получает данные. Этот пример вызывает подфункцию, которая обновляет панель ожидания.

Создайте parfor - цикл, чтобы выполнить в вычислительном отношении требовательную задачу в MATLAB®. Используйте send, чтобы отправить некоторые фиктивные данные по каждой итерации parfor - цикл. Когда очередь получает данные, afterEach вызывает nUpdateWaitbar в клиенте MATLAB, и можно наблюдать прогресс панели ожидания.

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

Входные параметры

свернуть все

Очередь данных, заданная как объект parallel.pool.DataQueue.

Пример: q = parallel.pool.DataQueue;

Сообщение или данные от рабочих очереди данных, заданной как любой тип данных, который может быть сериализирован.

Пример: send(queue, data);

Очередь данных Pollable, заданная как объект parallel.pool.PollableDataQueue.

Пример: p = parallel.pool.PollableDataQueue;

Введенный в R2017a