Rumah > pembangunan bahagian belakang > C++ > Adakah Permulaan Pembolehubah Statik Tempatan dalam C 11 Thread-Selamat?

Adakah Permulaan Pembolehubah Statik Tempatan dalam C 11 Thread-Selamat?

Mary-Kate Olsen
Lepaskan: 2024-12-29 11:23:09
asal
929 orang telah melayarinya

Is Local Static Variable Initialization in C  11 Thread-Safe?

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan