Cara Melaksanakan Singleton Multithread-Safe dalam C 11 Tanpa Menggunakan
Pengenalan
Melaksanakan singleton-safe thread dalam C 11 telah menjadi topik perdebatan sejak pengenalan multithreading. Walaupun mutex menyediakan cara mudah untuk mencapai keselamatan benang, mereka boleh memperkenalkan overhed prestasi. Artikel ini meneroka pendekatan alternatif untuk melaksanakan singleton selamat berbilang benang tanpa menggunakan mutex.
Permulaan Malas dengan Menunggu Serentak
C 11 memperkenalkan ciri bahasa baharu yang memudahkan pelaksanaan daripada permulaan malas. Pelaksanaan serentak kini akan menunggu jika pembolehubah setempat statik sudah dimulakan, menghapuskan keperluan untuk penguncian manual.
Pelaksanaan
Fungsi statik mudah yang mengambil contoh tunggal boleh dilaksanakan seperti berikut:
<code class="cpp">static Singleton& get() { static Singleton instance; return instance; }</code>
Fungsi ini akan memberikan tingkah laku yang betul dalam C 11 selagi pengkompil melaksanakan piawai dengan betul.
Keputusasaan Singletons
Walaupun perlaksanaan yang dipermudahkan ini, penulis menekankan bahawa penggunaan singleton secara amnya tidak digalakkan. Mereka menyokong untuk mengelakkan individu tunggal sama sekali kerana batasan yang wujud.
Nota Tambahan
Atas ialah kandungan terperinci Bolehkah Anda Mencipta Singleton Selamat Benang dalam C 11 Tanpa Menggunakan ``?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!