2010-01-22 2 views
0

Lorsque j'utilise pthread_exit() dans le thread initial, le thread initial bascule dans l'état terminé. Mais je n'ai pas compris le processus.pthread_exit() et le thread initial

Peut exister un processus en cours d'exécution avec le thread initial dans l'état termitated?

+1

Voir aussi: http://stackoverflow.com/questions/1695106/multiple-threads-in-c-program/1695137#1695137 –

Répondre

3

Dans les pthreads, tant que n'importe quel thread s'exécute, le processus reste actif.

Alors oui, vous pouvez avoir un processus en cours même si le thread initial s'est terminé.

Une chose qui peut être source de confusion vous est ce qui arrive quand le retour du thread initial de main(). C'est l'équivalent d'appeler exit(). Donc, si main() retourne, votre processus se terminera. Mais si le thread initial appelle pthread_exit() et que d'autres threads sont encore en vie, votre processus restera actif.