Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#19

AW: Maximale Threadanzahl / Anzahl der Threads für Programm / Prozeß erhöhbar?

  Alt 25. Nov 2014, 17:26
Wenn eine Funktion mit 100%-CPU-Leistung der Kerne laufen soll, dann nimmt man eben nur so viele Threads, wie es (arbeitslose) Kerne gibt.
Bei mehr wird, in der Regel, der Verwaltungsaufwand immer mehr Rechenleistung auffressen, zzgl. der Synchronisation usw.

Wenn die Threads fast nichts zu rechnen haben, oder eben auch nacheinander ausgeführt werden können, dann wäre ein Thread-Pool oder Fiber eine Alternative, mit einer aktiven Threadanzahl entsprechend der Kerne.


Es sind sogar Leute auf die kranke Idee gekommen Dateioperationen in Threads laufen zu lassen (siehe Microsoft Suche), wo der Flaschenhalt der Datenträger ist, also 1 Thread pro Festplatte.
Dort merkt man das sogar noch krasser (bei mechanischen HDDs), daß sich mehrere Threads gegenseitig bremsen und es mit mehr Threads immer langsamer wird.
Theoretisch kann man es auch mit Threads machen, aber nur wenn im Thread auch noch was Anderes gemacht, welches die meiste Zeit beansprucht, wie z.B. eine Verarbeitung der Dateidaten.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (25. Nov 2014 um 17:31 Uhr)
  Mit Zitat antworten Zitat