Sto usando la libreria pthread per la creazione di & discussioni uniscono in C.indipendente vs. assemblabili thread POSIX
Quando devo creare un thread come indipendente, fin dall'inizio? Offre un vantaggio in termini di prestazioni rispetto a un thread collegabile?
È legale non eseguire un pthread_join() su un thread joinable (predefinito)? O dovrebbe mai usare una tale discussione la funzione detach() prima di pthread_exit() ing?
dubbio: in caso di thread separati, cosa succede se il thread principale termina l'esecuzione prima che il thread separato sia terminato? Penso che questo interromperebbe il processo uccidendo tutti i thread. Quindi, in quali scenari vengono utilizzati i thread distaccati perché dovrei essere sicuro che il thread separato ha terminato l'esecuzione? – Ajax
@Ajax: Empiricamente, se il thread principale termina, il programma termina e i thread sono ... terminati. Questo, almeno, sembra essere il comportamento su Mac OS X (10.10.1 Yosemite). Non riesco a trovare nulla nella documentazione POSIX che indichi che altri thread continuano se 'exit()' o '_exit()' o '_Exit()' viene chiamato. Se il thread principale esegue 'pthread_exit()', allora gli altri thread avranno la possibilità di completare. –
Su una nota diversa: i fili rimovibili fanno bene quando si dispone già di altri meccanismi di polling; è possibile utilizzare lo stesso meccanismo di polling per verificare lo stato dei risultati e quindi sapere se il thread è stato completato o meno. È un caso di "È pronto? Se è così, usalo". –