SDL Thread: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
()
 
(Allgemein: Versuch ein Schema zu finden ;))
Zeile 5: Zeile 5:
  
 
== Allgemein ==
 
== Allgemein ==
Mit Hilfe von SDL_Thread ist es möglich plattformübergreifend in seinen Anwendungen Multithreading zu implementieren.
+
Viele Jahre lang war Multithreading ein Zauberwort, dass bei vielen Entwicklern die Augen funkeln liess. Der Computer lernte plötzlich mehrere Aufgaben gleichzeitig durchzuführen. Auf einem System mit nur einer CPU kann natürlich nur eine Aufgabe zur Zeit erledigt werden. Durch ein sehr schnelles Umschalten zwischen den Aufgaben erreicht man allerdings softwareseitig den Eindruck als würde der Rechner tatsächlich mehre Anwendungen parallel ausführen. Threads können dazu beitragen die Systemleistung besser auszunutzen und auch dazu dienen um Anwendungen während einer langen Verarbeitung dem Anwender zur Verfügung zu stellen.
 +
 
 +
Mit Hilfe von SDL_Thread ist es möglich plattformübergreifend in seinen Anwendungen Multithreading zu implementieren, selbst auf Systemen auf denen kein Multithreading vom Betriebssystem unterstützt wird.
 +
 
 +
== Anwendungsbereiche ==
 +
 
 +
=== Netzwerk-Kommunikation ===
 +
Gerade im Bereich der Netzwerkprogrammierung ist die Verarbeitung von Daten mittels Threads unverzichtbar. Ein Server, der nur in einem Thread läuft liefe schnell der Gefahr auf einen Client zu warten und somit auch die Verbindung mit anderen Computern zu unterbrechen. Doch auf Seite des Clients kann es sehr sinnvoll sein die Datenkommunikation in einem Thread auszulagern.
 +
 
 +
== Threads erzeugen ==
 +
Einen neuen Thread mit Hilfe von SDL zu erzeugen ist sehr einfach. Hierfür benötigen wir eine einfache Funktion mit Aufgaben, die der Thread verarbeiten soll. [[SDL_CreateThread]] bekommt diese Funktion übergeben und liefert einen PSDL_Thread zurück mit dem wir den Thread künftig identifizieren. Direkt nach dem Erzeugen des Threads wird dieser gestartet und beginnt mit der Verarbeitung.
  
 
== Beispiele ==
 
== Beispiele ==
 
[http://www.delphigl.com/download/sdl/sample_sdl_mutex.zip Beispiel für die Verwendung eines Mutex]
 
[http://www.delphigl.com/download/sdl/sample_sdl_mutex.zip Beispiel für die Verwendung eines Mutex]

Version vom 15. August 2005, 15:00 Uhr

Hinweis: Dieser Artikel ist noch unvollständig.
(Mehr Informationen/weitere Artikel)

{{{1}}}

Incomplete.jpg

Dieser Artikel muss noch erweitert werden. Erklärung von Threads und Verlinkung aus anderen Artikeln heraus? (Phobeus)

SDL_Thread

Allgemein

Viele Jahre lang war Multithreading ein Zauberwort, dass bei vielen Entwicklern die Augen funkeln liess. Der Computer lernte plötzlich mehrere Aufgaben gleichzeitig durchzuführen. Auf einem System mit nur einer CPU kann natürlich nur eine Aufgabe zur Zeit erledigt werden. Durch ein sehr schnelles Umschalten zwischen den Aufgaben erreicht man allerdings softwareseitig den Eindruck als würde der Rechner tatsächlich mehre Anwendungen parallel ausführen. Threads können dazu beitragen die Systemleistung besser auszunutzen und auch dazu dienen um Anwendungen während einer langen Verarbeitung dem Anwender zur Verfügung zu stellen.

Mit Hilfe von SDL_Thread ist es möglich plattformübergreifend in seinen Anwendungen Multithreading zu implementieren, selbst auf Systemen auf denen kein Multithreading vom Betriebssystem unterstützt wird.

Anwendungsbereiche

Netzwerk-Kommunikation

Gerade im Bereich der Netzwerkprogrammierung ist die Verarbeitung von Daten mittels Threads unverzichtbar. Ein Server, der nur in einem Thread läuft liefe schnell der Gefahr auf einen Client zu warten und somit auch die Verbindung mit anderen Computern zu unterbrechen. Doch auf Seite des Clients kann es sehr sinnvoll sein die Datenkommunikation in einem Thread auszulagern.

Threads erzeugen

Einen neuen Thread mit Hilfe von SDL zu erzeugen ist sehr einfach. Hierfür benötigen wir eine einfache Funktion mit Aufgaben, die der Thread verarbeiten soll. SDL_CreateThread bekommt diese Funktion übergeben und liefert einen PSDL_Thread zurück mit dem wir den Thread künftig identifizieren. Direkt nach dem Erzeugen des Threads wird dieser gestartet und beginnt mit der Verarbeitung.

Beispiele

Beispiel für die Verwendung eines Mutex