Maison >Opération et maintenance >exploitation et maintenance Linux >Comment déterminer si un thread existe sous Linux

Comment déterminer si un thread existe sous Linux

WBOY
WBOYoriginal
2022-04-06 17:03:543805parcourir

Dans MySQL, vous pouvez utiliser la fonction "pthread_kill()" pour déterminer si un thread existe. Cette fonction peut envoyer un signal sig au thread avec un ID spécifié pour déterminer si le thread est toujours en vie. pthread_kill(thread pthread_t, int sig )".

Comment déterminer si un thread existe sous Linux

L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.

Comment déterminer si un thread existe sous Linux

pthread_kill :

Ne soyez pas effrayé par le nom, pthread_kill ne tue pas, mais envoie un signal au fil. Vous vous souvenez du signal ? L'action par défaut de la plupart des signaux est de terminer le fonctionnement du processus, nous devons donc utiliser signal() pour capter le signal et ajouter une fonction de traitement.

int pthread_kill(pthread_t thread, int sig);

Envoie le signal sig au thread avec l'ID spécifié Si aucun traitement n'est effectué dans le code du thread, l'ensemble du processus sera affecté selon le comportement par défaut du signal. , mais le thread n'implémente pas la fonction de traitement du signal, l'ensemble du processus se termine.

pthread_kill(threadid, SIGKILL) fait de même, tuant tout le processus.

Si vous souhaitez obtenir le comportement correct, vous devez implémenter signal(SIGKILL, sig_handler) dans le fil.

Donc, si le paramètre de int sig n'est pas 0, vous devez savoir ce que vous voulez faire et vous devez implémenter la fonction de traitement du signal du thread, sinon cela affectera l'ensemble du processus.

OK, si int sig est 0, c'est un signal réservé, et sa fonction est de déterminer si le thread est toujours vivant.

Jetons un coup d'œil à la valeur de retour de pthread_kill :

  • Succès : 0

  • Le thread n'existe pas : ESRCH

  • Signal illégal : EINVAL

Donc, pthread_kill( ID de fil,0) est très ça marche.

Comment déterminer si un thread existe sous Linux

Le code ci-dessus peut déterminer si le fil est toujours vivant.

Recommandations associées : "Tutoriel vidéo Linux"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn