Ich habe eine Designfrage. Ich möchte Feedback geben, um zu erfahren, ob ein ThreadPool für das Clientprogramm geeignet ist, das ich gerade schreibe.Threadpool Design Frage
Ich habe einen Client, der als ein Dienst ausgeführt wird, der Datenbankdatensätze verarbeitet. Jeder dieser Datensätze enthält Verbindungsinformationen zu externen FTP-Sites [im Grunde ist es eine Warteschlange von Dateien zu übertragen]. Viele von ihnen sind auf dem gleichen Host, nur verschiedene Dateien verschieben. Daher gruppiere ich sie nach Host. Ich möchte in der Lage sein, einen neuen Thread pro Host zu erstellen. Es ist mir wirklich egal, wann die Übertragungen zu Ende sind, sie müssen nur die gesamte Arbeit erledigen (oder versuchen), die sie zugewiesen haben, und beenden sie dann, wenn sie fertig sind, und bereinigen alle Ressourcen, die sie in diesem Prozess verwendet haben.
Ich erwarte nicht mehr als 10-25 Verbindungen hergestellt werden. Sobald die Übertragungswarteschlange leer ist, wartet das Programm einfach, bis wieder Datensätze in der Warteschlange sind.
Ist der ThreadPool ein guter Kandidat dafür oder sollte ich einen anderen Ansatz verwenden?
Bearbeiten: In den meisten Fällen ist dies die einzige wichtige benutzerdefinierte Anwendung, die auf dem Server ausgeführt wird.
+1 Stimmen Sie mit all Ihren Überlegungen überein, Threadpool ist eine großartige Ergänzung. – Walter