Permulaan Pembolehubah Statik Setempat C 11: Keselamatan Benang
Mengenai keselamatan benang pemulaan pembolehubah statik tempatan dalam C 11, terdapat banyak perbincangan. Artikel ini bertujuan untuk memberikan jawapan yang komprehensif berdasarkan status standard dan pelaksanaan semasa.
C 11 Thread-Safety of Local Static Variable
Seksyen 6.7 C 11 standard secara eksplisit menyatakan bahawa permulaan pembolehubah statik tempatan berlaku pada kali pertama kawalan melalui pengisytiharannya. Tambahan pula, pemulaan dianggap selesai apabila ia selesai, dan sebarang pelaksanaan serentak yang memasuki perisytiharan semasa pemulaan sedang dijalankan mesti menunggu penyiapannya.
Pelaksanaan dalam Penyusun
Dalam pematuhan dengan standard, penyusun popular seperti GCC 4.7, Visual C 2011 dan Clang 3.0 telah melaksanakan pemulaan selamat benang untuk pembolehubah statik tempatan. Ini memastikan bahawa pembina pembolehubah statik tempatan, seperti lg dalam contoh yang disediakan, akan dijalankan sekali sahaja, menjamin pengamulaan selamat benang.
Pertimbangan Tambahan
Walaupun permulaan adalah selamat untuk benang, adalah penting untuk ambil perhatian bahawa ini tidak meluas kepada akses seterusnya kepada pembolehubah melalui rujukan. Oleh itu, masih perlu memastikan keselamatan benang dalam penggunaan pembolehubah yang dimulakan, kerana piawaian tidak menyatakan sebarang jaminan khusus untuk akses selamat benang di luar peringkat permulaan.
Atas ialah kandungan terperinci Adakah Permulaan Pembolehubah Statik Tempatan dalam C 11 Thread-Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!