Pelaksanaan Singleton Meyers: Keselamatan Benang dalam Piawaian C Berbeza
Pelaksanaan corak Singleton oleh Meyers dengan permulaan malas menimbulkan persoalan tentang urutannya keselamatan. Artikel ini mengkaji kelakuannya dalam piawaian C yang berbeza.
C 11 dan Kemudian
Dalam C 11 dan piawaian berikutnya, pelaksanaan Singleton Meyers adalah selamat untuk benang. Mengikut piawai (§6.7 [stmt.dcl] p4), pelaksanaan serentak pengisytiharan mesti menunggu untuk penyiapan permulaan.
C 03
Dalam C 03, Pelaksanaan Singleton Meyers tidak selamat untuk benang. Artikel Meyers mengenai "Penguncian Disemak Dua Kali" menyerlahkan isu ini. Beliau mencadangkan penguncian penuh di sekitar kaedah instantiating sebagai pendekatan mudah untuk memastikan keselamatan benang pada semua platform. Corak penguncian yang disemak dua kali mungkin terdedah kepada keadaan perlumbaan pada seni bina tertentu tanpa halangan memori strategik.
Penyusun Disokong
Permulaan dan Pemusnahan Dinamik dengan Concurrency (Magic Statik pada MSDN ) ialah ciri asas yang memastikan keselamatan benang dalam C 11. Penyusun berikut menyokongnya ciri:
Atas ialah kandungan terperinci Adakah Benang Pelaksanaan Singleton Meyers Selamat dalam Piawaian C Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!