Synchronisation de deux threads grâce à l’appel Future Thread:synchronisation

Voici le cas d’application de l’utilisation de la méthode statique Future.

Un utilisateur effectue une action Action1. Action1 entraîne l’exécution d’une autre action Action2 dont le temps d’exécution est T secondes. De manière synchrone, si l’utilisateur veut le résultat de Action2, il doit attendre le thread principal pendant T secondes et bloque le thread appelant d’autant.

Avec l’utilisation de Future, l’exécution de Action2 est commencée immédiatement, mais c’est quand l’utilisateur demande le résultat de Action2 que le thread principal est bloqué. Ainsi, si l’utilisateur attend t secondes pour demander le résultat, le thread principal n’est bloqué que de T-t secondes. Cela permet d’éviter les blocages de rafraîchissement des applications.

images/10EP05.png

Pour mettre en évidence ce comportement, éditons la form ci-dessus avec l’ajout des éléments suivants :

  • Un TTimer et un TLabel pour afficher l’heure courante.

  • Deux TSpinEdit pour configurer un temps d’attente et un nombre quelconque. Ce nombre saisi sous le TLabel Result servira de résultat d’un calcul simulé. Ce calcul prend le nombre de secondes configuré dans le TSpinEdit en dessous du TLabel Wait in s.

  • Quatre TButton à utiliser par groupe de deux. Ceux...

Pour consulter la suite, découvrez le livre suivant :
couv_RIDELPH.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
PPL : la bibliothèque de programmation parallèle
Suivant
Exécuter N actions en parallèle avec TParallel