Je me sers de la bibliothèque pthread pour créer & rejoindre les discussions en C.individuelle contre POSIX Threads associable
Quand dois-je créer un fil comme détaché, dès le départ? Est-ce qu'il offre un avantage de performance par rapport à un thread joignable?
Est-il légal de ne pas faire un pthread_join() sur un thread joignable (par défaut)? Ou un tel thread devrait-il toujours utiliser la fonction detach() avant pthread_exit() ing?
doute: dans le cas de fils détachés, que se passe-t-il si le filetage principal se termine avant que le fil détaché ne soit terminé? Je pense que cela mettrait fin au processus qui tue tous les threads. Alors Dans quels scénarios sont utilisés les threads détachés parce que je devrais être sûr que le thread détaché a terminé l'exécution? – Ajax
@Ajax: Empiriquement, si le thread principal se termine, le programme se termine et les threads sont ... terminés. Cela, au moins, semble être le comportement sur Mac OS X (10.10.1 Yosemite). Je ne trouve rien dans la documentation POSIX qui indique que d'autres threads continuent si 'exit()' ou '_exit()' ou '_Exit()' est appelé. Si le thread principal fait 'pthread_exit()', alors les autres threads auront une chance de se terminer. –
Sur une note différente: Les filets détachables sont bons pour quand vous avez déjà un autre mécanisme d'interrogation en place; vous pouvez utiliser ce même mécanisme d'interrogation pour vérifier l'état du résultat, et ainsi savoir si le thread est terminé ou non. C'est un cas de "Est-il prêt? Si oui, utilisez-le." –