Multithread-Anwendungen entwickeln

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Multithread-Anwendungen entwickeln - Index

Mehrere Objekte erleichtern die Entwicklung von Multithread-Anwendungen. Multithread-Anwendungen zeichnen sich dadurch aus, dass sie aus mehreren gleichzeitig ausgeführten Ablaufsträngen bestehen, den so genannten Threads. Die Realisierung mehrerer solcher Threads erfordert zwar eine gewisse Sorgfalt bei der Planung, führt aber zu deutlichen Verbesserungen in Programmen:

  • Vermeidung von Flaschenhälsen. In einem Programm mit nur einem Thread muss die gesamte Ausführung unterbrochen werden, wenn auf den Abschluss eines langsamen Prozesses gewartet wird. Solche Prozesse sind das Schreiben von Dateien auf Datenträger, die Kommunikation mit anderen Rechnern oder die Anzeige von Multimediadaten. Die CPU befindet sich bis zum Ende solcher Prozesse im Leerlauf. Wenn eine Anwendung dagegen mehrere Threads umfasst, kann die Ausführung der anderen Threads fortgesetzt werden, während ein Thread auf das Ergebnis eines langsamen Prozesses wartet.
  • Strukturierung des Programmverhaltens. Oft lässt sich das Verhalten eines Programms in mehreren parallelen Prozessen organisieren, die unabhängig voneinander arbeiten. Mithilfe von Threads kann die Ausführung eines bestimmten Quelltextabschnitts für jeden dieser parallelen Zweige gleichzeitig gestartet werden. Ebenso können verschiedenen Programmaufgaben unterschiedliche Prioritäten zugeordnet werden, damit kritische Aufgaben mehr CPU-Zeit erhalten.
  • Multiprocessing. Wenn eine Anwendung auf einem System mit mehreren Prozessoren läuft, kann die Leistung gesteigert werden, indem man die Verarbeitung auf einzelne Threads verteilt und diese gleichzeitig auf verschiedenen Prozessoren ausführen lässt.

Hinweis:Nicht alle Betriebssysteme bieten echtes Multiprocessing, auch wenn die zugrunde liegende Hardware dies unterstützt. So wird beispielsweise unter Windows 9x Multiprocessing lediglich simuliert.

Themen

Die folgenden Themen beschreiben, wie die Thread-Unterstützung in Anwendungen integriert wird:

Siehe auch