100〜150台のデバイスを監視できる監視アプリケーションを作成しています...監視アプリケーションを設計するために、2つのアプローチがあります。-
監視するデバイスごとにスレッドを作成すると、各スレッドがデバイスにping(ICMPを使用)して、デバイスがオンラインかどうかを確認します。これらのスレッドは、特定の時間間隔(たとえば、60秒)後にステータスを知るために無期限に実行されます。
スレッドプールを作成し、デバイスごとに、タスクをスレッドプールに送信します。タスクは、デバイスへの単純なpingです。したがって、現在の設計では、タスクはスレッドプール内のスレッド以上のものになります。たとえば、監視するデバイスが100ある場合、監視するタスクは100あり、スレッドプールにはこれらの100のタスクを完了するためのスレッドが40あります。もちろん、次の一連のタスクを実行する時間は、スレッドプール内のすべての保留中のタスクを完了するようなものになります。
どちらのアプローチが良いでしょうか?