Zitat von
Errraddicator:
Sprich: Ich möchte die Verarbeitung von 1 auf 3 Threads aufteilen, um die CPU-Nutzung zu erhöhen und die Laufzeit zu verbessern.
Die CPU-Nutzung zu erhöhen kann nur ein Mittel sein um die Laufzeit zu verringern. Es stellt sich nur die Frage ob das in diesem Fall der richtige Weg ist.
Ich habe die Erfahrung gemacht das oft schon kleine Eingriffe in den Ablauf eine dramatische Veränderung der Laufzeit bringen.
Da Threads das Programm deutlich verkomplizieren können, sind sie für diesen Zweck eher das letzte Mittel.
Unabhängig davon halte ich es für sinnvoller wenn ein Thread die Verantwortung für jeweils ein Datenobjekt übernimmt. Das heist er führt für dieses Datenobjekt nacheinander alle Aufgaben vom Lesen über Verarbeiten bis zur Ausgabe durch. Sind die Aufgaben für ein DatenObjekt erledigt, so kann man diesem Thread ein neues DatenObjekt übergeben oder beenden. Entsprechend den verfügbaren Ressourcen kann das Programm zur Laufzeit die Anzahl der Threads steuern.