‫Content de te revoir.
‫Dans cette vidéo, j'aimerais parler de join and is alive, donc join est une méthode que la menace ou la classe de menace
‫possède et que nous pouvons utiliser et est vivante est une propriété dont elle dispose.
‫Alors créons une menace ici ou en fait des menaces.
‫Et j'ai également créé deux méthodes.
‫La menace, une fonction et la menace de fonctionner.
‫Et ce qu'ils font, c'est simplement dire qu'ils ont commencé.
‫Donc, la troisième fonction a démarré et a essayé de démarrer la fonction.
‫Alors maintenant, vous pouvez aller de l'avant et simplement copier cela ou le construire vous-même très rapidement et ensuite vous pouvez aller de l'avant.
‫Donc, ici, je dirai simplement que le fil de domaine a commencé et à la fin, il sera dit que le fil principal s'est
‫terminé.
‫Pour l'instant rien de nouveau.
‫Si nous commençons par le contrôle cinq, par exemple, la console reste éveillée, le thread principal a démarré et le thread principal
‫s'est terminé.
‫Appuyez sur n'importe quelle touche pour continuer.
‫OK, vous pouvez donc voir que cela a commencé et que cela s'est terminé et que cela s'est produit très rapidement.
‫Il ne se passe donc pas grand-chose ici.
‫Alors maintenant, changeons cela.
‫Créons des fils là-dedans.
‫Créons donc un nouveau fil appelé Thread One.
‫Alors fil.
‫Et pour utiliser le thread, nous devons implémenter en utilisant le threading du système.
‫Alors maintenant, nous pouvons utiliser des threads.
‫Et je vais appeler ce fil un.
‫Et ce qui va se passer, c'est que ce sera simplement un nouveau thread qui appellera la fonction thread one ou la
‫fonction thread one.
‫Je vais donc juste exécuter ce code ici.
‫Il va juste les appeler la méthode.
‫Et ensuite, un autre fil.
‫Je vais appeler le thread deux, qui sera également un thread et ici un thread pour fonctionner.
‫Donc, comme vous pouvez le voir, il existe plusieurs threads d'overlord, des démarrages de threads paramétrés et un démarrage de
‫thread.
‫Donc, celui que nous faisons n'est qu'un début de fil.
‫Commencez donc par un délégué de démarrage de thread qui représente les méthodes à appeler lorsque le thread commence à
‫s'exécuter.
‫Ce sera donc notre méthode.
‫Donc cette troisième ou troisième fonction, qui n'est pas vraiment une méthode, c'est une fonction parce
‫qu'elle n'est pas dans une classe orientée objet, mais d'une manière qui va de l'avant et crée cette fonction.
‫Comme vous pouvez le voir, vous n'avez pas besoin des crochets ici car nous ne l'appelons pas réellement un délégué ici.
‫D'accord.
‫Ensuite, ce que nous devons faire, c'est simplement démarrer ces threads.
‫Faisons donc ce fil avec un point de départ et filons jusqu'à ce début.
‫Et je vais juste appuyer sur contrôle, avoir cinq pour le démarrer et voir le fil principal commencé, le
‫fil principal terminé.
‫Une fonction a démarré et a essayé de démarrer la fonction.
‫Donc, ils ne se sont pas terminés parce que nous n'avons pas encore implémenté de message de fin.
‫Alors maintenant, allons de l'avant et utilisons la méthode conjointe sur ces deux menaces ou menaces, l'une qui se joint et vérifions ce
‫qui nous a rejoint les blocs conjoints, la menace d'appel jusqu'à ce que la menace représentée par cette instance se
‫termine tout en continuant à exécuter le message standard venu et envoyé pompage.
‫Donc ce que nous allons faire, c'est simplement venir ou rejoindre ces deux menaces.
‫Donc cette menace avec la menace principale, c'est ce que fait cette méthode conjointe et elle bloque la menace principale
‫pour l'instant.
‫Il est donc appelé par la menace principale.
‫C'est pourquoi il bloque la principale menace.
‫C'est ce qu'on appelle généralement bloquer la menace d'appel.
‫Et dans notre cas, la menace d'appel est la menace principale parce que nous sommes dans la menace principale lorsque nous
‫l'appelons.
‫OK, donc ce que nous faisons alors, c'est aussi rejoindre la deuxième menace.
‫Nous nous sommes donc joints à nous deux.
‫Et écrivons quelque chose sur la console, CW et disons thread une fonction, Don.
‫Et faisons de même pour le deuxième, alors exécutons-le à nouveau et il ne se passera pas grand-chose en fait, appuyez sur
‫contrôle à cinq heures, donc ma console reste éveillée, le thread principal a commencé le troisième une fonction
‫a commencé à fonctionner et ici, il devrait être appelé menacer de fonction.
‫D'accord.
‫Alors que nous sommes maintenant, il dit, OK, troisième, introduisez terminé et ensuite, seule la menace principale est terminée.
‫Ce n'est donc rien d'extraordinaire et rien de nouveau.
‫Il exécute simplement ce truc étape par étape.
‫Voilà à quoi ça ressemble ici.
‫Mais alors faisons quelque chose d'intéressant.
‫Ajoutons un sommeil ici.
‫Alors en fait, endormons la menace pendant trois secondes.
‫Alors menace de dormir.
‫Trois mille millisecondes.
‫Et ce que cela va faire, c'est que cette méthode va juste dire la méthode, le thread a démarré et ensuite
‫ça va attendre trois secondes.
‫Alors maintenant, exécutons-le à nouveau et exécutons-le à nouveau avec le contrôle à cinq heures.
‫Donc ici les fonctions ont commencé.
‫Et puis après un certain temps de réflexion, lancez une fonction, Dunn a en fait reproduit cela très rapidement de sorte que un et
‫deux ont commencé et après trois secondes, vous pouvez voir cette fonction.
‫Dunn a essayé de fonctionner, Dunn et la principale menace ont pris fin.
‫Donc, le fil principal et attendez que le principal ou le troisième soit terminé.
‫Et cela se produit parce que nous le rejoignons ici.
‫Alors nous rejoignons la première menace et nous disons, OK, s'il vous plaît, attendez que nous ayons terminé.
‫Maintenant, si nous regardons la méthode conjointe, il y a d'autres choses intéressantes à considérer.
‫Il y a plusieurs surcharges.
‫Donc, comme vous pouvez le voir, il n'y en a qu'un ou nous avons zéro paramètres ici ou arguments que nous avons donnés, mais il
‫y en a plusieurs.
‫Nous pouvons donc ajouter un autre argument ici, qui est le temps que nous voulons attendre avant d'aller de l'avant.
‫Donc, ici, je vais simplement utiliser la menace IV qui en fait un thread qui se joint prend un temps spécifique et, comme vous pouvez
‫le voir, un délai d'attente en millisecondes.
‫Supposons donc que nous attendions une seconde et que nous donnions à cette menace une seconde pour se terminer.
‫Et s'il le fait dans le temps, nous disons thread une fonction terminée et sinon nous disons quelque chose comme menace.
‫Une fonction n'a pas été effectuée en une seconde.
‫D'accord.
‫Alors débarrassons-nous de ce joint ici et remplaçons en fait tout ce
‫code pour cela.
‫Alors maintenant, exécutons-le à nouveau.
‫Contrôlez un cinq.
‫Donc la fonction avant, une menace n'a pas été exécutée en une seconde, la menace de la fonction principale a pris fin.
‫Donc, comme vous pouvez le voir, cela n'a pas été fait dans le délai spécifié.
‫Mais maintenant, ajoutons un autre code ici, car nous n'avons jamais vu cette menace, une fonction effectuée.
‫Ajoutons donc quelque chose comme thread, une fonction revenant à main.
‫Cela signifie donc que c'est à peu près terminé ou peut-être pas principal.
‫Mais l'appelant, relancez-le avec le contrôle de cinq.
‫Donc, la menace de fonction a commencé, permettez-moi de l'appeler à nouveau, puis, OK, la menace principale s'est terminée et vous ne
‫voyez qu'après ce temps, donc seulement après trois secondes, il a dit menace une fonction revient à la
‫couleur.
‫La menace principale était donc déjà exécutée et ce n'est qu'ensuite qu'elle est revenue à l'appelant, qui était la menace principale.
‫Ce n'est qu'alors qu'il est arrivé à, eh bien, la ligne 30 ou en fait après.
‫Cela a donc été fait avec la méthode principale et ce n'est qu'ensuite que ce code a été exécuté.
‫Donc, comme vous pouvez le voir, cela n'a bloqué le thread principal que pendant une seconde, il n'a pas bloqué le thread principal jusqu'à ce
‫que ce soit fait.
‫Il dit donc bloquer le thread appelant jusqu'à ce que le thread représenté par cette instance se termine ou que
‫le temps spécifié se soit écoulé tout en continuant à effectuer plusieurs commentaires dessus.
‫Pompage si bien, vous pouvez voir ici que vous pouvez dire, OK, Myntra, s'il vous plaît, attendez une seconde.
‫Et si ça n'arrive pas ou si le troisième ne termine pas ce truc, alors ça va continuer.
‫Donc, il va se joindre à travers deux et ensuite il va juste dire que le thread principal du thread Kamden est terminé
‫et bien, la fonction du thread un est toujours en cours d'exécution ou le thread un est toujours en cours d'exécution et il est toujours en veille
‫et exécute le code par la suite.
‫Mais il ne le fait pas à temps, comme vous pouvez le voir ici.
‫Alors la menace principale n'a plus attendu, a juste dit, OK, je vais continuer, je vais continuer
‫sans toi.
‫C'est donc ce que vous pouvez voir ici à propos de la jonction de threads, c'est ainsi que cela fonctionne.
‫Et maintenant, regardons ceci est une propriété viager.
‫Donc, si le thread un est vivant, il y a donc cette propriété et comme vous pouvez le voir, obtient une valeur indiquant l'état d'exécution
‫de la menace actuelle, ce qui signifie que la menace est exécutée ou n'est-elle pas exécutée ?
‫Donc, il est dit ici si la menace est toujours vivante, donc si elle est toujours en cours d'exécution au point où ce
‫code est exécuté, alors faites quelque chose.
‫Donc je vais juste écrire quelque chose comme menace on fait toujours des trucs.
‫Il est donc toujours en train d'exécuter et d'exécuter du code.
‫Et sinon, je vais juste dire que la première menace est terminée.
‫Donc, le fil CW est terminé.
‫Très bien, et ici, bien sûr, nous devons terminer la chaîne maintenant, vérifions-la à nouveau.
‫Et le fil principal s'est terminé et en fait ma console s'est fermée.
‫Alors permettez-moi de commencer par le contrôle à cinq threads principaux démarrés thread une fonction a démarré et ainsi de suite, donc cela
‫n'a pas été fait en une seconde, puis j'ai essayé de fonctionner.
‫Deux a été fait.
‫Alors ça dit, OK, je ne vais plus attendre.
‫Je veux dire fil.
‫Il exécute alors le thread deux.
‫Celui-ci est toujours en train de faire des choses, cela signifie donc que la menace 1 est en vie, est exécutée et ce n'est qu'après que la
‫menace principale est terminée.
‫Donc, ce code ici est exécuté ligne trente-huit.
‫Et puis notre menace, une fonction revenant à la couleur est appelée ou est exécutée.
‫D'accord.
‫C'est donc ce que vous pouvez vérifier et simplement vérifier, OK.
‫La menace est-elle vivante ou non ?
‫Et sur cette base, vous pouvez exécuter des choses et c'est assez utile.
‫Alors maintenant, disons que nous voulons voir que la menace continue de faire des choses régulièrement.
‫Alors disons que nous l'utilisons pour une boucle ici et I est égal à zéro.
‫Je souffle 10 I plus plus.
‫Donc, dans cette boucle for, je veux exécuter ce code.
‫Et ce qu'il va faire, c'est juste dire que la menace fait toujours des choses et
‫ensuite il va dormir pendant, disons trois cents millisecondes.
‫Alors dormez trois cents, ce qui signifie que nous aurons dix exécutions avant que notre menace ne soit terminée.
‫Alors exécutons cela encore une fois.
‫La première menace est toujours en train de faire des choses faites et faites.
‫Et comme vous pouvez le voir, il n'a pas exécuté les dix fois, même si le sommeil de menace était là pendant
‫trois cent vingt secondes et millisecondes et celui-ci n'a duré que trois cents millisecondes.
‫Alors, qu'est-ce que cela a fait, c'est qu'il a exécuté une menace terminée plusieurs fois, donc comme vous pouvez le voir,
‫il y a un chevauchement où la fonction de menace revient.
‫Comme vous pouvez le voir, cette boucle n'est exécutée qu'un peu plus tard.
‫L'ordre est donc le suivant.
‫Nous commençons celui-là.
‫Nous commençons à démarrer le thread un, attendu une seconde.
‫Vous pouvez donc voir que nous avons cette jointure d'une seconde.
‫Nous perdons donc déjà trois exécutions de notre sommeil ici, ce qui signifie que cette menace, une qui fait encore
‫des trucs, n'est en fait exécutée que six fois ici, sept ou sept fois.
‫Et puis la menace une fonction revient parce qu'elle a commencé.
‫Ensuite, il a attendu une seconde.
‫Rien ne s'est passé alors.
‫Ce n'est qu'à ce moment-là qu'il a commencé à faire toutes ces belles choses.
‫Donc, parce que cela est exécuté dix fois, il exécutera ce sommeil plusieurs fois jusqu'à ce qu'il revienne à la couleur.
‫Et ce troisième terminé est exécuté super rapidement.
‫Donc ça ne va pas attendre parce qu'il n'y a pas de sommeil là-dedans.
‫Mais c'est généralement ce que vous pouvez faire avec ces vivants.
‫Donc, vous pouvez généralement vérifier, OK, est-ce la vie, est-ce encore en vie, est-ce toujours en vie et
‫faire des trucs pendant qu'il est vivant ou faire d'autres trucs pendant qu'il est vivant et ensuite ne rien faire ou autre chose quand c'est
‫fait.
‫C'est donc un exemple très basique d'utilisation de join and is alive, et j'espère que vous pourrez saisir le concept.
‫Alors rendez-vous dans la prochaine vidéo où nous verrons les tâches.