Я создаю приложение монитора, которое может контролировать 100-150 устройств... Теперь для разработки приложения для монитора у меня есть два подхода: -
-
Создайте поток для каждого из устройств для мониторинга, и каждый поток будет пинговать (используя ICMP) на устройстве, чтобы узнать, находится ли устройство в сети или нет. Эти потоки будут работать неопределенно, чтобы узнать свой статус после определенного временного интервала (скажем, 60 секунд).
-
Создайте пул потоков и для каждого устройства отправьте задачу в пул потоков. Задача проста пинговать на устройство. Таким образом, в текущем проекте задачи будут больше, чем потоки в пуле потоков. Например, скажем, есть 100 устройств для мониторинга, будет проверено 100 задач, и пул потоков скажет 40 потоков для выполнения этих 100 задач. Конечно, продолжительность времени для запуска следующей задачи будет таковой, чтобы завершить все ожидающие задачи в пуле потоков.
Какой подход будет лучше?