Sono un po 'confuso sull'ordine di pulizia quando si utilizzano PThreads in relazione alla cancellazione. Normalmente, se il tuo thread è staccato, pulisce automaticamente quando termina. Se non è scollegato, è necessario unirsi a esso per recuperare le risorse di sistema.Devi partecipare a un thread annullato? (pthreads)
Il libro di testo che sto leggendo comunica quanto segue che suona strano come entrare è facoltativo per quanto riguarda la cancellazione:
"Se hai bisogno di sapere quando il thread è in realtà terminato, è necessario unirsi con esso chiamando pthread_join dopo averlo cancellato. "
Quindi, ho bisogno di unire una discussione cancellata per liberare le sue risorse - e se no, allora perché?
Diventerebbe un thread di zombi se fosse stato impostato su modalità scollegata prima di essere annullato? o dovrei fare una nuova domanda: p –
@ w00te Dipende da te. Ma la citazione dice "* se il thread non è stato rimosso *". Se si scollega un thread non è necessario (** e nessun modo **) unirsi a esso. Una volta scollegato un thread non è possibile renderlo nuovamente unificabile. – cnicutar
Lo standard Posix non parla di thread zombi, ma se ho capito bene il termine, un thread che è stato staccato non diventerà mai uno zombi. (Logicamente, staccare un thread ha lo stesso effetto che dire al sistema di fare un join su di esso per te, non appena finisce.) –