Rumah > pembangunan bahagian belakang > C++ > Jenis C dan C yang manakah Mempamerkan Gelagat Atom Semulajadi pada Sistem x86-64 64-Bit?

Jenis C dan C yang manakah Mempamerkan Gelagat Atom Semulajadi pada Sistem x86-64 64-Bit?

Mary-Kate Olsen
Lepaskan: 2024-12-14 07:40:11
asal
982 orang telah melayarinya

Which C and C   Types Exhibit Naturally Atomic Behavior on a 64-Bit x86-64 System?

Jenis C dan C Manakah yang Secara Semulajadi Atom pada Komputer 64-Bit?

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.

Jaminan Atomicity pada Komputer Linux 64-Bit

Pada Linux 64-bit komputer dengan pemproses x86-64, jenis berikut mempunyai bacaan atom secara semula jadi dan menulis:

  • int
  • _Atomic_word

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa walaupun jenis ini tidak secara automatik secara automatik mengikut piawaian bahasa.

Memahami Atomicity

Terdapat dua utama deria "atom":

  • Atomik berkenaan dengan isyarat: Memastikan bahawa pengendali isyarat yang digunakan semasa pelaksanaan arahan berbeza hanya akan melihat nilai lama atau baharu bagi pembolehubah sig_atomic_t yang tidak menentu.
  • Atom berkenaan dengan benang: Menjamin bahawa akses serentak kepada objek akan menghasilkan nilai yang betul dilihat oleh semua benang. Untuk mencapai matlamat ini, _Atomik atau std::jenis atom diperlukan.

Pengoptimuman Pengkompil dan Atomiti

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.

Kesimpulan

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!

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