Benang Terpisah dan Akibat Keluar Utama()
Pertimbangkan senario di mana utas tertanggal dilancarkan dan meneruskan pelaksanaan selepas peringkat kawalannya :: objek benang keluar dari skop. Potensi kesunyian standard pada subjek telah mencetuskan kebimbangan: apakah yang akan berlaku dengan utas yang terpisah apabila fungsi main() keluar?
Tingkah Laku Tidak Tentu atau Kesan Tertakrif?
standard tidak mempunyai garis panduan yang jelas mengenai perkara ini. Walau bagaimanapun, jawapan kepada soalan asal memberikan penjelasan:
Menyertai Benang Terpisah dan Pengendali Isyarat
Menjawab soalan kedua, respons menegaskan bahawa utas yang terpisah boleh digabungkan melalui keluarga fungsi *_at_thread_exit . Fungsi ini membolehkan menandakan selesainya pelaksanaan utas sambil memastikan semua pemusnah telah digunakan.
Walau bagaimanapun, menggunakan pembolehubah keadaan atau semaphore sahaja tidak mencukupi untuk pencantuman yang boleh dipercayai. Piawaian ini menguatkuasakan pengehadan pada pelaksanaan kod semasa pengendalian isyarat, tidak termasuk penggunaan pembolehubah keadaan melainkan dibenarkan secara eksplisit oleh pelaksanaan.
Akibat bagi Gelagat Program
Berdasarkan perkara ini pemerhatian, kekangan piawai pada tingkah laku benang semasa keluar main() menentukan tindakan khusus untuk pembangun:
Atas ialah kandungan terperinci Apa yang Berlaku kepada Benang Terpisah Apabila Fungsi `utama()` Keluar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!