System.Classes.TThread
Delphi
TThread = class
C++
class PASCALIMPLEMENTATION TThread : public System::TObject
Inhaltsverzeichnis
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
class | public | System.Classes.pas System.Classes.hpp |
System.Classes | System.Classes |
Beschreibung
TThread ist eine abstrakte Klasse und ermöglicht in einer Anwendung die Existenz mehrerer, getrennter Ablaufstränge (Threads).
Erzeugen Sie einen Nachkommen von TThread, um einen Ausführungs-Thread in einer mehrschichtigen Anwendung darzustellen. Jede weitere Instanz eines TThread-Nachkommens bildet einen neuen Ablaufstrang. Wenn eine Anwendung über mehrere solcher TThread-Instanzen verfügt, wird sie als Multithread-Anwendung bezeichnet.
Beim Start einer Anwendung werden diese zur Ausführung in den Speicher geladen. In diesem Moment wird sie zu einem Prozess, der einen oder mehrere Threads umfasst, die jeweils Daten, den Code und weitere Systemressourcen für das Programm enthalten. Ein Thread führt einen bestimmten Teil einer Anwendung aus und erhält hierfür vom Betriebssystem CPU-Zeit zugewiesen. Alle Threads eines Prozesses greifen auf denselben Adressbereich und auf die globalen Prozessvariablen zu.
Threads bieten für die Leistungssteigerung einer Anwendung folgende Möglichkeiten:
- Eingaben mehrerer Datenübertragungsgeräte verarbeiten.
- Verschiedene Tasks nach ihrer Priorität unterschieden. Beispielsweise übernimmt ein Thread hoher Priorität zeitkritische Aufgaben und ein Thread niedriger Priorität andere Aufgaben.
Im folgenden finden Sie einige Aspekte, die beim Einsatz von Threads beachtet werden sollten:
- Die Koordination zu vieler Threads verbraucht beträchtliche CPU-Zeit. Auf einem Ein-Prozessor-System stellen 16 aktive Threads die praktikable Obergrenze dar.
- Wenn mehrere Threads dieselben Ressourcen aktualisieren, ist unbedingt eine Synchronisierung erforderlich, die Konflikte unterbindet.
- Die meisten Methoden, die auf ein Objekt zugreifen und ein Formular aktualisieren, dürfen nur vom Haupt-Thread aus aufgerufen werden. Sie können auch ein Synchronisationsobjekt, wie z.B. TMultiReadExclusiveWriteSynchronizer, verwenden.
Definieren Sie die Execute-Methode des Thread-Objekts. Geben Sie den Code ein, der ausgeführt werden soll, wenn auch der Thread ausgeführt wird.
Siehe auch
- Siehe die Beschreibung der Threads-Demo unter Threads im Debugger blockieren und lösen