SDL Thread: Unterschied zwischen den Versionen
() |
(→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
(Mehr Informationen/weitere Artikel) {{{1}}} |
Dieser Artikel muss noch erweitert werden. Erklärung von Threads und Verlinkung aus anderen Artikeln heraus? (Phobeus)
Inhaltsverzeichnis
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.