System.Classes.TThread

De Appmethod Libraries
Aller à : navigation, rechercher

System.TObjectTThread

Object Pascal

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

Exemples de code