Tidak seperti standard bahasa, pengkompil GNU C dan GNU C merawat atomicity berdasarkan seni bina tertentu. Manakala C11 dan C 11 memperkenalkan _Jenis atom dan std::atomic<> jenis masing-masing, artikel ini memfokuskan semata-mata pada bacaan dan penulisan atom secara semula jadi, tidak termasuk penambahan atom, penyusutan atau penugasan kompaun.
Pada Linux 64-bit komputer dengan pemproses x86-64, jenis berikut mempunyai bacaan atom secara semula jadi dan menulis:
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa walaupun jenis ini tidak secara automatik secara automatik mengikut piawaian bahasa.
Terdapat dua utama deria "atom":
Hanya kerana jenis secara semula jadi atom pada peringkat perkakasan tidak bermakna pengkompil akan sentiasa menggunakan arahan atom untuk mengaksesnya. Pengoptimuman boleh membawa kepada akses bukan atom, walaupun untuk jenis data yang diketahui sebagai atom pada perkakasan sasaran.
Sebagai contoh, beban daripada integer 32-bit pada x86 adalah atom, tetapi pengkompil mungkin gunakan beban separa 16-bit atau stor yang tidak dijamin atom.
Ringkasnya, tiada jenis dalam C atau C yang secara muktamad secara automatik atom pada komputer 64-bit. Untuk memastikan akses atom, adalah penting untuk menggunakan jenis _Atomic atau std::atomic atau bergantung pada dokumentasi untuk mengesahkan jaminan atom untuk seni bina dan penyusun tertentu.
Atas ialah kandungan terperinci Jenis C dan C yang manakah Mempamerkan Gelagat Atom Semulajadi pada Sistem x86-64 64-Bit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!