Maison >Opération et maintenance >exploitation et maintenance Linux >Comment déterminer si un thread existe sous Linux
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 )".
L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.
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.
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!