Exemple de vie réelle;
- Installation: système d'exploitation
- Sections: Applications
- Personnes: Fils
Vous avez une installation là-bas 12 personnes travaillent. Il y a 3 sections de cette installation. Cuisine, toilettes et sécurité. Si vous n'utilisez pas la technique de pool de threads, voici comment cela fonctionne: Les 12 personnes se tiendront dans une salle de réunion, si de nouveaux clients arrivent et demandent des tâches, vous séparez les personnes en groupes et les envoyez pour qu'elles fassent leur travail. et revenez à la salle de réunion. Mais avant qu’ils n’assument leurs fonctions, il y a une phase de préparation. Ils doivent porter l'uniforme approprié, équiper certains appareils et se rendre à cette section, terminer leur travail et revenir. Ainsi, une fois à la fin de leur travail (le fil se termine), ils doivent retourner dans la salle de réunion, se déshabiller, prendre leur équipement et attendre leur prochain travail. Celles-ci font référence à la création d'un contexte de thread, à son allocation de mémoire et à des informations de suivi par système d'exploitation.
Si vous utilisez la mise en commun des threads, tôt le matin, vous affecterez 6 personnes à la cuisine, 2 personnes aux toilettes et 4 personnes à la sécurité. Ainsi, ils ne feront leur préparation qu'une fois par jour. Même s'il n'y a pas de clients à la cuisine, ces 4 personnes seront là, au ralenti, pour toutes les tâches à venir. Ils n'ont pas besoin de retourner dans la salle de réunion jusqu'à la fermeture de la cuisine (l'application se termine). Ces 4 personnes sont dans la piscine de l'application Cuisine et sont prêtes à vous servir rapidement. Mais, vous ne pouvez pas promettre qu'ils travaillent toute la journée, car la cuisine peut devenir inutilisée de temps en temps. La même logique s'applique aux toilettes et à la sécurité.
Dans le premier scénario, vous ne perdez pas de thread pour une tâche quelconque, MAIS il faudra beaucoup de temps pour préparer chaque thread pour chaque tâche. Dans un second temps, vous préparez les threads à l'avance. Vous ne pouvez donc pas garantir que vous utiliserez tous les threads pour toutes les tâches, mais le système d'exploitation optimise généralement son fonctionnement, de sorte que vous pouvez vous y fier en toute sécurité.