Und wenn nun ein Thread für eine Kurze Zeit die CPU voll auslastet haben die anderen ja nichts mehr davon.
Wenn du die Threads nicht auf mehrere Kerne verteilst, kann auch die CPU nur eins nach dem anderen machen und da spielt die Auslastung keine Rolle.
Zitat:
Und wenn nun mehrere Threads gleichzeitig das File lesen wollen geht die CPU Last erst richtig hoch.
Das ist Unsinn, was du da machst. Mit mehreren Threads aus einer Datei zu lesen bringt keinen Geschwindigkeitsvorteil, weil die Festplatte auch immer nur von einer Stelle lesen und so nur einen Thread jeweils bedienen kann.
Und noch mal, was hast du gegen eine hohe CPU-Auslastung? Wenn die CPU dein Programm ausführen soll, dann muss sie eben arbeiten. Dass andere Programme keine so hohe CPU-Auslastung haben liegt schlicht und ergreifend daran, dass sie zu 99% der Laufzeit nichts tun.
Du scheinst noch nicht zu wissen wie Windows sein Multitasking verwaltet. Lesetipp:
http://michael-puff.de/Programmierung/Delphi/Tutorials/