quelle est la meilleure façon possible de terminer le processus
- Si vous optez pour un seul thread, utilisez simplement
exit()
, car votre code n'est pas multithread. - Sinon, assurez-vous que tous les threads sauf un se sont terminés avant le dernier, puis appelez en toute sécurité
exit()
à cause de 1. ci-dessus.
Étant donné que les pannes d'alimentation/matériel peuvent survenir à tout moment, l'impossibilité... l'extrême difficulté de terminer de manière fiable les threads avec le code utilisateur et la nature chaotique de l'utilisation des pools de mémoire, etc. dans de nombreuses applications multithread non triviales, il est préférable de concevoir applications et systèmes qui peuvent nettoyer les fichiers temporaires, etc. au démarrage, plutôt que d'essayer de micro-gérer l'arrêt.
"Nettoyez toutes les ressources que vous allouez avant de quitter" ressemble à un bon conseil dans une salle de classe ou une conférence, mais devient rapidement toute une chaîne d'albatros autour de votre cou face à une douzaine de threads, de files d'attente et de pools dans un système dynamique en constante évolution.
Si vous le pouvez, si vous utilisez un système d'exploitation non trivial, laissez-le faire son travail et nettoyer pour vous. C'est bien meilleur que votre code d'utilisateur ne le sera jamais.