Wofür man den Chip doch missbrauchen könnte, wäre ein Hardware Threadteiler. Müsste nicht mehr in Software geschehen und man hätte eine bessere Auslastung aktueller 8 Cores
Threads kann man nicht in Hardware "teilen".
Entweder das Programm ist multi Thread geschrieben oder nicht.
Ein Programm startet weitere Threads immer von sich aus.
Nur der Programmierer kann wissen, welche Operationen unabhängig parallel arbeiten können.
Wenn Hardware (oder das Betriebssystem) in irgend einer Weise einen Teil des Programmablaufes früher startet (auf dem 2. Kern) dann wird dem Ablauf das Ergebnis des ersten Teils fehlen.
Im besten Fall sind fall back Variablen und Try-Catch Routinen implementiert.
Dann gibt es nur ein falsches Ergebnis.
Ansonsten stürzt das Ganze ab.
Als Beispiel eine Simple Anwendung.
Eine Zahl wird jede Sekunde um 1 erhöht, bis der Nutzer einen Button drückt.
Dann kommt ein PopUp und zeigt die Zahl an.
Shematisch:
10 wenn wieder 1000ms vergangen: geheZu 30
20 geheZu 10
30 _zahl += 1
40 wenn button gedrückt: geheZu 60
50 geheZu 10
60 popup _zahl
wenn ein zweiter Thead bei 10 - 50 startet, laufen plötzlich zwei Timer und die Zahl wird immer um 2 erhöht.
(ganz abgesehen davon dass hier Speicherraum Verletzungen auftreten!)
Wenn er bei 60 einspringt passiert, was eigentlich nur auf Nutzeringabe hätte passieren sollen.
[EDIT]
Das Beispiel lässt sich sehr wohl parallelisieren.
a10 starte Thread: b
a20 wenn button gedrückt: geheZu a40
a30 geheZu a20
a40 stoppe thread: b
a50 popup _zahl aus b
b10 wenn wieder 1000ms vergangen: geheZu b30
b20 geheZu b10
b30 _zahl += 1
b40 geheZu b10
Der Nutzen scheint zunächst gering.
Mal angenommen:
- in Zeile 15 bzw. a25 würde eine funktion stehen, die den aktuellen Wert der _zahl auf dem Bildschirm anzeigt
- die Berechnung _zahl += 1 wäre sehr komplex.
dann würde bsp. 1 in Zeile 30 hängen bleiben, aber bsp. 2 regelmäßig den aktuellen Wert (Zwischenergebnis falls noch gerechnet wird) anzeigen.