Les Threads

1. Création

Un thread est une tâche qui s’exécute en arrière-plan de l’application comme si un nouveau processus avait été créé. On peut bien entendu avoir plusieurs threads travaillant en parallèle. L’interpréteur Ruby ne s’appuie pas sur les capacités du système d’exploitation pour gérer les threads, cela à l’avantage de la portabilité et donne l’assurance d’avoir un comportement homogène. L’inconvénient étant que si un thread sollicite trop les ressources de l’interpréteur, les autres threads risquent de moins s’exécuter.

Tous les threads sont gérés par un scheduler qui se charge de répartir les exécutions. Un thread peut être mis en pause et réveillé (par exemple s’il doit attendre le résultat d’un autre thread). Un thread peut également appartenir à un groupe de thread.

Une section critique est un bloc d’instructions dans un thread qui ne doit pas être interrompu car cela pourrait corrompre le résultat. Par exemple, imaginez une opération sur un compte bancaire consistant à lire la somme disponible puis à faire un ajout ou une suppression, si une autre opération a lieu entre la lecture et l’écriture, le résultat final sera faux, il faut donc que la lecture puis l’écriture deviennent une section critique...

Pour consulter la suite, découvrez le livre suivant :
couv_Ruby.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
Date et Heure
Suivant
Processus