J'ai un programme qui utilise plusieurs threads. Si je comprends bien, lorsque le thread 0 se termine, le programme entier se termine, sans tenir compte des autres threads qui pourraient encore être en cours d'exécution.
Le problème est que ces autres fils peuvent avoir des fichiers ouverts. Naturellement, ceci est enveloppé dans un code de gestion des exceptions qui ferme proprement les fichiers en cas de problème. Cela signifie également que si j'utilise killThread
(qui est mis en œuvre via throwTo
), le fichier doit également être fermé avant que le fil ne se termine.
Ma question est la suivante : si je laisse simplement le thread 0 sortir, sans essayer d'arrêter les autres threads, est-ce que tous les différents handles de fichiers seront bien fermés ? Est-ce que toute sortie en mémoire tampon sera vidée ?
En bref, puis-je simplement quitter, ou dois-je d'abord tuer manuellement les fils ?