System.Classes.TThread
Delphi
TThread = class
C++
class PASCALIMPLEMENTATION TThread : public System::TObject
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
class | public | System.Classes.pas System.Classes.hpp |
System.Classes | System.Classes |
Description
TThread est une classe abstraite permettant la création de plusieurs threads d'exécution séparés dans une application.
Créez un descendant de TThread pour représenter un thread d'exécution dans une application multithread. Chaque nouvelle instance d'un descendant de TThread est un nouveau thread d'exécution. Plusieurs instances d'une classe dérivée de TThread rendent une application multithread.
Quand une application est exécutée, elle est chargée en mémoire, prête à s'exécuter. A ce moment, elle devient un processus comportant un ou plusieurs threads contenant les données, le code et d'autres ressources système du programme. Un thread exécute une partie d'une application et se voit attribué du temps CPU par le système d'exploitation. Tous les threads d'un processus partagent le même espace d'adresse et peuvent accéder aux variables globales du processus.
L'utilisation des threads améliore les performances d'une application en :
- Gérant les entrées de plusieurs périphériques de communication.
- En distinguant des tâches de priorités différentes. Par exemple, un thread de priorité élevée gère des tâches critiques alors qu'un thread de faible priorité gère les autres tâches.
L'utilisation des threads doit se faire en respectant les recommandations suivantes :
- Conserver la trace d'un trop grand nombre de threads gaspille du temps CPU; sur un système disposant d'un seul processeur, la limite est de 16 threads actifs par processus.
- Si plusieurs threads actualisent les mêmes ressources, synchronisez les threads pour éviter les conflits.
- La plupart des méthodes accédant à un objet ou actualisant une fiche doivent être appelées dans le thread principal ou utiliser un objet de synchronisation tel que TMultiReadExclusiveWriteSynchronizer.
Définir la méthode Execute de l'objet thread en insérant le code à exécuter quand le thread est exécuté.
Voir aussi
- Voir la description démo sur les threads à Figer et libérer des threads dans le débogueur