Rumah > pembangunan bahagian belakang > C++ > Jenis Data Manakah yang Secara Semulajadi Atom pada Sistem GNU C/C 64-Bit?

Jenis Data Manakah yang Secara Semulajadi Atom pada Sistem GNU C/C 64-Bit?

Barbara Streisand
Lepaskan: 2024-12-18 04:00:09
asal
859 orang telah melayarinya

Which Data Types Are Naturally Atomic on a 64-Bit GNU C/C   System?

Manakah Jenis pada Komputer 64-Bit adalah Atom Semulajadi dalam GNU C dan GNU C ?

Tidak seperti dalam C11 dan kemudian, atau C 11 dan kemudian, yang menyediakan jaminan untuk atomicity menggunakan jenis _Atomic atau std::atomic, piawaian bahasa C dan C sendiri tidak memberi jaminan mengenai atom membaca dan menulis. Sebaliknya, tahap atomicity bergantung pada pelaksanaan pengkompil dan seni bina sasaran.

Pada komputer 64-bit yang menjalankan Linux pada pemproses x86-64, atomicity semula jadi jenis data berbeza berbeza-beza. Penyusun GNU C dan GNU C (gcc dan g ) menawarkan tahap atomicity tertentu untuk jenis tertentu.

Jenis Atom:

  • int: Typedef _Atomic_word dalam pengepala menunjukkan bahawa int ialah atom.
  • __sig_atomic_t: Typedef dalam pengepala mentakrifkan jenis integer atom, memastikan atom membaca dan menulis dengan kehadiran gangguan tak segerak.

Jenis Bukan Atom:

  • int64_t (long panjang)
  • uint64_t (unsigned long long)
  • double (64-bit)
  • berganda panjang (juga 64-bit)

Nota Tambahan:

  • Atomicity merujuk kepada bacaan dan tulis atom, bukan kenaikan atom, penyusutan atau kompaun tugasan.
  • Adalah penting untuk ambil perhatian bahawa walaupun jenis tertentu dijamin sebagai atom dalam konteks tertentu (cth., sig_atomic_t yang tidak menentu ialah atom berkenaan dengan isyarat), ia tidak semestinya atom berkenaan dengan benang.
  • Pengkompil mungkin mengoptimumkan kod dengan cara yang memecahkan andaian tentang atomicity, terutamanya jika andaian tersebut adalah tidak dinyatakan secara eksplisit dalam standard bahasa.
  • Untuk memastikan akses serentak selamat benang, penggunaan eksplisit jenis _Atomic atau std::atomic disyorkan.

Atas ialah kandungan terperinci Jenis Data Manakah yang Secara Semulajadi Atom pada Sistem GNU C/C 64-Bit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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