Многопроцессорность или многопоточность, что предпочесть для сбора, обработки и построения графиков данных в реальном врPython

Программы на Python
Anonymous
Многопроцессорность или многопоточность, что предпочесть для сбора, обработки и построения графиков данных в реальном вр

Сообщение Anonymous »


Я написал программу на Python для сбора и обработки данных самостоятельно. Я пытаюсь интегрировать все задачи для обработки и визуализации в реальном времени. Задачи
[*]Сбор данных — выполняется постоянно для сбора данных из 4 каналов. [*]Обработка на графическом процессоре — выполняется пакетно за каждую секунду полученных данных. обработка занимает ~300 мс. [*]Постройте обработанные данные — используя matplotlib после обработки графическим процессором
Полученные данные добавляются в виде новой строки в массив numpy. Через 2 секунды я удаляю самую старую строку при добавлении новой (чтобы сохранить фиксированный размер памяти). Хотелось бы добиться максимальной скорости обновления графика.

Я хотел бы знать, следует ли мне использовать многопоточность или многопроцессорность. Если я использую многопоточность или многопроцессорность, поскольку мой массив всегда используется задачей 1, сможет ли моя задача 2 получать данные, не блокируя задачу 1, или наоборот? например, если мой массив имеет 2000 строк, которые постоянно добавляются потоком сбора данных (начальные/более старые строки/данные удаляются), сможет ли другой поток прочитать первые 1000 строк этого потока одновременно? Если есть какие-то другие подходы, кроме вышеперечисленных, тоже хорошо.

Вернуться в «Python»