Python obtient un identifiant de fil

Python obtient un identifiant de fil
Un entier positif lorsqu'un thread est créé reçoit le nom «Thread ID». Les méthodes «get_indent ()» et «get_native_id ()» peuvent être utilisées pour acquérir l'ID de thread. La méthode «get_native_id ()» renvoie un identifiant qui est donné par le noyau et qui est également une valeur entière. Alors que les méthodes «get_indent ()» renvoient un identifiant distinct qui est un numéro entier. Nous devons importer le module de threading dans Python pour démarrer un thread avant de pouvoir trouver les ID de fil.

Exemple 1: utilisation du filetage.Méthode get_ident () dans les fils python.

Le «filetage.get_ident () ”La méthode sera utilisée dans cet exemple pour obtenir l'ID de thread dans un script Python. Nous devons d'abord créer un fil dans le script Python pour cela. Les threads Python sont un type d'objet de processus qui peut faire planifier leur exécution. Un thread est un processus de calcul qu'un ordinateur réalisera. L'ensemble de ces instructions d'un programme qui peut être effectué séparément des autres instructions est ce que c'est. Lorsqu'un thread est démarré, un long nombre positif appelé l'ID de thread est généré. L'identifiant de fil est constant et unique pendant le cycle de vie complet d'un fil. Chaque fois que le fil est terminé, il peut être utilisé à nouveau. De plus, chaque fil est reconnu. Chaque fil recevra une identification entière de Python. La fonction «get_ident ()» peut être utilisée pour obtenir ces informations. La méthode «get_native_id ()» peut être utilisée pour récupérer l'entier distinctif que le système d'exploitation fournit à chaque thread.

Laissez maintenant commencer à mettre le code en pratique à l'aide de l'outil «Spyder», qui est beaucoup plus facile à utiliser et à comprendre pour Python que d'autres outils comme Visual Studio Code. Nous importons le module «Threading» car nous construisons un thread dans la première ligne de code. La deuxième ligne de code importe le module «Time», qui fournit une plage de formats de codage pour le temps, y compris les éléments, les numéros et les chaînes. En dehors de la représentation du temps, il offre également des capacités comme l'attente pendant l'exécution de votre script et évalue l'efficacité de votre script.

Ensuite, comme il s'agit d'une fonction définie par l'utilisateur, nous sommes libres de lui donner un nom que nous aimons. Par conséquent, nous créons une fonction avec le nom «Func» et utilisons le «temps.Sleep () ”Fonction pour définir un intervalle de temps de« 3 »secondes. Dès que nous utilisons la fonction «Sleep ()» et définissons l'heure, notre système prend un moment pour cette période avant d'exécuter la déclaration dans laquelle nous avons appliqué la fonction «Sleep ()». Après cela, nous utilisons la fonction «print ()», passant «Threading.obtenir identi () ”pour récupérer l'ID de thread et la chaîne d'entrée« J'adore le codage »à l'intérieur de ses parenthèses. Maintenant que nous avons fourni le temps de «3» secondes dans le «temps.Méthode sleep () ”, notre système dormira pendant« 3 »secondes avant d'afficher cette déclaration et son identifiant.

Maintenant, nous allons créer un thread et appeler la fonction à l'intérieur en utilisant «Threading.thread () ”à l'intérieur, nous avons passé l'argument« cible = func », ce qui signifie appeler la fonction dans le thread. Nous avons ensuite stocké ce fil dans la variable «T1», que nous avons initialisé, et l'avons commencé dans la ligne suivante en appelant «T1.commencer()".

Lorsque nous exécutons le code, notre système s'arrête pendant trois secondes avant d'afficher l'instruction PRINT, «J'adore le codage» et l'ID de thread, «13116."Nous avons utilisé" le filetage.get_ident () ”ci-dessus pour obtenir l'ID de thread car l'ID de thread doit être un entier numérique positif. Vous pouvez donc être sûr que l'ID est un entier positif en regardant l'ID de fil.

Maintenant, dans la section suivante, nous utilisons le même code et «Threading.obtenir identi (), ". Mais nous allons ajouter un deuxième thread car, dans la section précédente du code, il n'y avait qu'un seul fil maintenant, il y en a deux, et nous devons trouver leurs identifiants. Pour ce faire, tout comme dans la section ci-dessus, nous importons d'abord les deux bibliothèques «Threading» et «Time». Après avoir défini une fonction, nous utilisons «Temps.Sleep () ”Mais cette fois, nous avons réglé le temps sur« 1 »seconde. Ensuite, nous appelons «print ()» et passons «Threading.Obtenez identique () ”pour obtenir les identifiants de thread ainsi que l'instruction d'entrée« J'adore coder.«Dans ce cas, nous avons également utilisé la source de valeur entière«% d ».

Nous allons maintenant créer deux threads et appeler les fonctions dans chaque thread. Le thread 1 sera stocké dans la variable «T1» et le thread 2 sera stocké dans la variable «T2». Nous appellerons ensuite la fonction «Func» dans le thread 1 en utilisant «Threading.thread, «passer« cible = func »et répéter le processus pour le thread 2. Enfin, nous utiliserons la fonction «start ()» pour démarrer les deux threads.

Le système interrompt le fonctionnement pour «1» seconde en raison de «sleep ()» lorsque nous appuyons sur le bouton Exécuter pour afficher ses résultats à l'écran. Il affiche ensuite les ID des deux threads et l'instruction: l'ID du premier thread est «11436» et l'ID du deuxième thread est «11472».

Exemple 2: Utilisation du threading.Méthode get_native_id () dans les threads python.

Dans cet exemple, l'ID du thread sera obtenu en utilisant le threading.Technique get_native_id (). Il est utilisé pour récupérer l'ID de threads natifs que le noyau a alloué au fil actuel. Le thread actif à l'échelle du système est identifié par cette valeur. Le «filetage.get_native_id () ”Méthode a renvoyé les valeurs numériques avec un nombre non nul pour l'ID.

Maintenant, commençons à implémenter le code. Tout d'abord, nous importons les deux bibliothèques «Threading» et «Time."Ensuite, nous définissons une fonction avec le nom" Func.«Ensuite, nous appelons le« temps.Méthode sleep () ”et définissez la minuterie pendant« 2 »secondes. Ensuite, dans la ligne suivante, nous appelons la fonction «print ()» et passons la déclaration «Python est le langage de programmation à la croissance la plus rapide». Dans la ligne suivante, nous utiliserons «le filetage.thread () ”Pour créer un thread, et à l'intérieur, nous passerons« Func »comme argument pour appeler la fonction« Func »dans le fil. Ce thread est conservé dans la variable «T1», puis l'exécution du thread est lancée en appelant «T1.commencer()".

«L'ID natif» du thread, qui est «8580», est imprimé dans la sortie avec l'instruction d'entrée. Mais avant qu'il ne soit affiché, l'exécution de la déclaration a été interrompue pendant deux secondes parce que nous avions utilisé le «temps.Fonction sleep () ”.

Nous allons maintenant créer les deux fonctions dans la section suivante «phrase1» et «phrase2». Le temps.La méthode sleep () ”est appelée à l'intérieur de la fonction« phrase1 »et le paramètre de temps est envoyé en« 1 »secondes. Ensuite, nous appelons la fonction «print ()» dans la ligne suivante et à l'intérieur, nous appelons le «filetage.get_native_id ”et l'instruction d'entrée. Pour la deuxième fonction, «phrase2», nous répétons le processus mais ignorons l'utilisation du «temps.Fonction sleep () ”pour obtenir l'ID de thread que le noyau a attribué et envoyer l'instruction d'entrée.

Pour le premier thread, nous avons utilisé «Filetage.thread »et appelé la fonction en passant« phrase1 »à l'intérieur de sa parenthèse comme argument. Nous avons ensuite stocké ce fil dans la variable «T1». Nous allons maintenant créer deux threads dans l'étape du deuxième thread, nous avons répété le processus mais cette fois, nous avons appelé la deuxième fonction, «phrase2» et stocké ce fil dans «T2». Les exécutions de threads ont ensuite commencé à utiliser "start ()" avec "T1" et "T2".

Vous pouvez voir qu'il imprime immédiatement l'ID natif du deuxième thread, qui est «10636», ainsi que sa déclaration imprimée. Ensuite, il a affiché l'ID du fil 1, qui est «7400», car lorsque la fonction est appelée, nous définissons l'intervalle de temps pendant «1» secondes, ce qui fait que son exécution s'arrête pendant une seconde, de sorte qu'il passe rapidement à la prochaine exécution.

Conclusion

Cet article a examiné différentes approches pour obtenir un identifiant de fil dans Python. Le «filetage.get_ident () "Méthode et le" filetage.get_native id () "La méthode a été utilisée dans les exemples. Ces deux méthodes renvoient l'identification unique des threads, qui doit être des valeurs de nombre non nul et réel. Dans l'exemple, nous avons également utilisé le «temps.Méthode sleep () ”pour retarder l'exécution des fils.