Multithreading — Änderungen 7635 → 11509

Zeile 3: Zeile 3:
  
 
== Softwaremultithreading ==
 
== Softwaremultithreading ==
−
Durch Softwaremultithreading ist es möglich innerhalb eines Prozesses neben dem „Hauptthread“, der z. B. in C die main()-Funktion ausführt, weitere Threads, die eine andere Befehlssequenz innerhalb eines Prozesses gleichzeitig zum bzw. unabhängig vom Hauptthread auszuführen, zu erstellen. Um dies effizient auch auf Systemen mit mehr als einem Prozessorkern und mit wenig Aufwand im Userspace zu gestalten, werden durch das Betriebssystem spezielle Syscalls zum Erstellen und Zerstören von Threads bereitgestellt. Diese können dann explizit durch den Programmierer aufgerufen werden oder implizit durch (spezielle) Programmiersprachen bzw. Erweiterungen von Programmiersprachen, wie z. B. [http://openmp.org/wp/ OpenMP] für C/C++.
+
Durch Softwaremultithreading ist es möglich innerhalb eines Prozesses neben dem „Hauptthread“, der z.&nbsp;B. in C die <code>main()</code>-Funktion ausführt, weitere Threads, die eine andere Befehlssequenz innerhalb eines Prozesses gleichzeitig zum bzw. unabhängig vom Hauptthread auszuführen, zu erstellen.
  
−
Alle Ressourcen (Dateihandles, Speicher, etc.) können von allen Threads benutzt werden, wodurch es zu [[Race Condition|Race Conditions]] (zwischen den einzelnen Threads) kommen kann.
+
Siehe Artikel zu [[Thread]]s
  
 
== Hardwaremultithreading ==
 
== Hardwaremultithreading ==