Rumah > Artikel > pembangunan bahagian belakang > Apakah Objek Atom dalam std::atomic<>?
? " />
Apakah itu Atomic Object dalam std::atomic<>?
Templat std::atomic<> menyediakan jenis yang boleh serentak dikendalikan oleh berbilang benang tanpa menimbulkan gelagat yang tidak ditentukan.
Atomicity of std::atomic<>
Setiap instantiasi std::atomic<> jenis yang membenarkan operasi serentak oleh urutan berbeza pada kejadiannya Tidak seperti objek C biasa, objek atom memastikan akses eksklusif kepada data mereka, menghalang perlumbaan data.
Operasi Atom
Operasi yang dilakukan pada objek atom adalah bersifat atom Ini bermakna:
Tempahan Memori dan std::atomic<>
std::atomic<> ; menyediakan kawalan tepat ke atas penyegerakan dan susunan memori Ia menyokong pelbagai pilihan susunan memori, termasuk:
Contoh: Operasi Aritmetik
Sementara operator aritmetik individu seperti = dan adalah operasi atom, menguraikannya kepada operasi beban, tambah dan simpan yang berasingan mungkin bukan operasi atom. Contohnya:
a = a + 12;
Operasi ini akan melibatkan langkah berikut:
Langkah 2 dan 3 bukan atom, jadi terdapat kemungkinan keadaan perlumbaan di mana benang lain boleh mengubah suai antara tambah dan kedai.
Alternatif kepada Operasi Asas Aritmetik
Untuk kes penggunaan biasa yang melibatkan operasi aritmetik, adalah disyorkan untuk menggunakan operator terlampau beban setara yang ditakrifkan dalam std::atomic<>. Operator ini melaksanakan keseluruhan operasi secara atom, memastikan ketekalan berurutan.
Sumber Tambahan pada Model Atom dan Memori
Atas ialah kandungan terperinci Apakah Objek Atom dalam std::atomic<>?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!