Я бы не использовал поток для каждого устройства, я бы исследовал, может ли поток обслуживать пул устройств, или можно использовать пул потоков для отправки входящих данных в первый доступный поток.
Вы можете проверить эту статью об ограничениях процессов и потоков в Windows .Потоки могут иметь более низкий приоритет, но имейте в виду, что они могут быть вытеснены потоками с более высоким приоритетом и не могут вовремя считывать / записывать данные.Кроме того, слишком много потоков могут просто «тратить» время, если им нечего делать, но планировщик вынужден предоставить им часть времени (поток должен быть очень хорошо себя вести, чтобы не использовать его просто так, чтобы ничего не делать).Сколько потоков может быть запущено одновременно без проблем, строго зависит от доступного оборудования.
Многое зависит от того, как доставляются данные («тянуть» или «толкать», имеют ли все данные одинаковый приоритет или нет?) Ипроцесс усилий после чтения данных, и как быстро система должна реагировать на новые данные.Например, одно решение может включать чтение данных и постановку их в очередь для обработки, но оно не может работать, если время отклика должно быть меньше, чем может позволить очередь.