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
Barbara Streisandasal
2024-12-18 04:00:09798semak imbas

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:
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