Was sind Threads?

@wuselsurfer
Alles soweit richtig und gut, aber leider glaube ich für den TE bißchen am Thema vorbei...

Imho, geht es ihm hauptsächlich um die Erklärung was Threads in seiner Programmiersprache bedeuten bzw. was dann passiert...
Da ist das Ganze mit Pipelines und Von-Neumann zwar schön aber für den Einstieg bißchen heftig ;)
Ohne heftig gibt es keine EDV.
Das Bit ist unteilbar.

Wer die CPU nicht begreift, wird sie auch nicht ordentlich programmieren können.
 
Wer die CPU nicht begreift, wird sie auch nicht ordentlich programmieren können.
Wer glaubt die CPU komplett zu begreifen macht in der Regel deutlich mehr Unfug als derjenige der mit möglichst wenig speziellen Annahmen an sein Projekt ran geht.
Für das Begreifen von Threads ist Superskalarität auf MicroOp Ebene nun wirklich nicht notwendig.
 
Es ist schwer einen Thread zu erklären für jemanden der überhaupt keine Programmierkenntnisse hat. Prinzipiell wird ein Programm linear abgearbeitet, also in einem Thread. Hat man mehrere Programme parallel hat man mehrere Threads. Es wird pro Takt (und Kern) normalerweise nur ein Befehl ausgeführt (manchmal dauert ein Befehl auch länger aber nie kürzer :)). Ein Prozessor hat für die unterschiedlichen Befehle auf Assemblerebene (Maschinensprache) unterschiedliche Verschaltungen wovon viele eben gerade nicht benutzt werden weil kein entsprechender Befehl vorhanden ist, dadurch sind dann (Intel war hier erster) die Entwickler auf die Idee gekommen man könnte ja auf einem Kern mehr als nur einen Thread ausführen lassen damit ungenutzte Verschaltungen dann auch noch genutzt werden (Hyperthreading).
Wenn man sich das ganze mal vorstellt wie komplex das Threadmanagement sein muss kann man sich echt nur wundern^^
 
Zurück