qual è il miglior modo possibile per terminare il processo
- Se vai a thread singolo usa semplicemente
exit()
, poiché il tuo codice non sarà multi-thread. - Altrimenti assicurati che tutti i thread tranne uno siano terminati prima dell'ultimo thread e poi chiama
exit()
in modo sicuro a causa di 1. sopra.
Dato che i guasti di alimentazione/hardware possono verificarsi in qualsiasi momento, l'impossibile... estrema difficoltà di terminare in modo affidabile i thread con il codice utente e la natura caotica dell'uso dei pool di memoria ecc. in molte app multithread non banali, è meglio progettare app e sistemi in grado di pulire i file temporanei ecc. all'avvio, piuttosto che provare a micro-gestire l'arresto.
"Ripulisci tutte le risorse che allochi prima di uscire" suona come un buon consiglio in classe o in una lezione, ma diventa rapidamente un'intera catena di albatros intorno al collo di fronte a una dozzina di thread, code e pool in un sistema dinamico in continua evoluzione.
Se puoi, se stai utilizzando un sistema operativo non banale, lascia che faccia il suo lavoro e pulisca per te. È molto meglio di quanto lo sarà mai il tuo codice utente.