70. (Multi-) Threading
- Tread:
Menge an nacheinander aufzurufenden Befehlen (kompilierter Quellcode)
Vor den Mehrkern-Prozessoren: Es gab keine echte zeitgleichen Threads - Threads wurden nur unterbrochen zugunsten von anderen Threads. Diese Wechsel zwischen den Threads passiert in so schneller Abfolge, dass diese zeitgleich erscheinen
Mehrkern-Prozessoren ermöglichen echte parallele Verarbeitung von Threads
Multi-Threading bringt nur dann eine Performance-Steigerung, wenn die Kerne nicht bereits von anderen Threads belegt sind
Ohne mehrere Threads in ein Programm einzubauen lässt sich die mögliche Performance-Steigerung von Mehrkernprozessoren nicht nutzen
Theoretische Performance-Steigerung: +100 % pro Kern sofern ein (weiterer) Thread des Programms auf diesem läuft
Multi-Thread Programme sind auch auf 1-Kern-Prozessoren ausführbar (laufen nur langsamer)
Task Management: Scheduler (vom Betriebssystem) verwalten die Threads, an Stelle des Programms -> wird ein Code zu kompliziert kann ich den Code im Threads packen und dem Scheduler die zeitliche Steuerung überlassen