Rumah >pembangunan bahagian belakang >C++ >Adakah C Integer Membaca dan Menulis Sentiasa Atom?

Adakah C Integer Membaca dan Menulis Sentiasa Atom?

DDD
DDDasal
2024-11-30 09:00:18672semak imbas

Are C   Integer Reads and Writes Always Atomic?

Adakah C Reads and Writes bagi int Atomic?

Soalan berkenaan dengan keatoman operasi baca dan tulis integer dalam C . Atomicity memastikan bahawa operasi selesai sebagai satu unit yang tidak boleh dibahagikan, memastikan tiada gangguan berlaku semasa proses.

Jawapan kepada soalan ini bergantung pada seni bina sistem. Pada pemproses seperti IA32, tulisan sejajar ke int biasanya atom. Walau bagaimanapun, penulisan tidak sejajar mungkin tidak bersifat atom bergantung pada sistem caching yang digunakan. Jika memori berada dalam satu baris cache, atomicity dikekalkan; jika tidak, ia tidak.

Selain itu, lebar bas antara CPU dan RAM boleh mempengaruhi atomicity. Dalam kes pemproses lama seperti 8086 dengan bas 16-bit, tulisan 16-bit yang diselaraskan adalah atom, manakala operasi yang sama tidak dijamin pada 8088 dengan bas 8-bit.

Untuk C/ C, adalah penting untuk mengisytiharkan nilai yang dikongsi sebagai tidak menentu. Ini menghalang pengoptimum daripada menganggap pembolehubah tidak akan diubah suai dalam urutan, memastikan nilai sebenar sentiasa dibaca.

Atas ialah kandungan terperinci Adakah C Integer Membaca dan Menulis Sentiasa Atom?. 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