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