Seperti yang dijelaskan dalam dokumentasi openpub,
pthread_exit()
akan keluar dari utas yang memanggilnya.
Dalam kasus Anda sejak main memanggilnya, main thread akan berakhir sedangkan utas yang Anda hasilkan akan terus dieksekusi. Ini sebagian besar digunakan dalam kasus di mana utas utama hanya diperlukan untuk menelurkan utas dan membiarkan utas melakukan tugasnya
pthread_join
akan menangguhkan eksekusi utas yang memanggilnya kecuali utas target berakhir
Ini berguna jika Anda ingin menunggu utas diakhiri sebelum diproses lebih lanjut di utas utama.
Kedua metode memastikan bahwa proses Anda tidak berakhir sebelum semua utas Anda berakhir.
Metode bergabung memiliki utas Anda dari main
fungsi secara eksplisit menunggu semua utas yang akan "bergabung".
pthread_exit
metode mengakhiri main
Anda fungsi dan utas dengan cara yang terkontrol. main
memiliki kekhususan yang mengakhiri main
jika tidak, akan menghentikan seluruh proses Anda termasuk semua utas lainnya.
Agar ini berfungsi, Anda harus yakin bahwa tidak ada utas Anda yang menggunakan variabel lokal yang dideklarasikan di dalamnya main
fungsi. Keuntungan dari metode itu adalah main
Anda tidak harus mengetahui semua utas yang telah dimulai dalam proses Anda, misalnya karena utas lain sendiri telah membuat utas baru main
tidak tahu apa-apa tentang.
pthread_exit
mengakhiri utas panggilan saat pthread_join
menangguhkan eksekusi utas pemanggil hingga utas target menyelesaikan eksekusi.
Mereka dijelaskan dengan cukup baik secara mendetail dalam dokumentasi grup terbuka:
- pthread_exit
- pthread_join