Я играю с некоторыми измерительными приборами через PyVisa (обертка Python для VISA). В частности мне нужно прочитать значение измерения из четырех инструментов, подобных этому:Самый быстрый способ обработки потоков с обратным вызовом в Python
current1 = instrument1.ask("READ?")
current2 = instrument2.ask("READ?")
current3 = instrument3.ask("READ?")
current4 = instrument4.ask("READ?")
Для моего приложения, скорость является обязательной. Индивидуально, я могу получить от 50 до 200 измерений в секунду от четырех инструментов, но, к сожалению, мой текущий код оценивает четыре инструмента последовательно.
Из того, что я прочитал, есть некоторые варианты с Threading и Multiprocessing в Python, но не очевидно, какой лучший и самый быстрый вариант для меня. Лучший сценарий для случая я буду нереститься ~ 4x50 потоков в секунду, поэтому накладные расходы немного обеспокоены.
Задача ни в коем случае не требует интенсивного процессора, это просто вопрос ожидания считывания с инструмента.
Любые советы относительно того, что может быть надлежащим образом действий?
Большое спасибо заранее!
Почему не 4 статических потоков, каждый смотрит на одном инструменте постоянно? Таким образом, вам не нужно создавать и присоединяться к потокам. – Loocid
Вы можете попробовать threadpool. Таким образом, вы не получаете никаких накладных расходов на поток. – Pithikos
@Loocid Я не уверен, что вы подразумеваете под статическими потоками для python, но мне нужно одновременно прочитать четыре значения, то есть даже для моего наилучшего случая сценарий я всегда буду ограничен самым медленным потоком. Но это прекрасно, если мне не нужно читать с инструментов в серийном порядке! =) – Bjarke