Pemahaman Berlaku-Sebelum Konsisten
Dalam bab 17 Spesifikasi Bahasa Java (JLS), "berlaku-sebelum konsistensi" ditakrifkan sebagai berikut:
"Satu set tindakan A berlaku-sebelum konsisten jika untuk semua bacaan r dalam A, di mana W(r) ialah tindakan tulis yang dilihat oleh r, tidak sama ada hb(r) , W(r)) atau wujud tulisan w dalam A sehingga w.v = r.v dan hb(W(r), w) dan hb(w, r)."
Takrifan ini boleh dipermudahkan sebagai: untuk satu set tindakan berlaku-sebelum konsisten, tiada pembacaan seharusnya melihat tulisan yang berlaku kemudian dan tiada penulisan harus diikuti dengan bacaan yang melihat nilai yang lebih awal.
Soalan Anda
Dua soalan pertama anda:
Soalan ketiga anda:
Nombor di sebelah kiri tindakan dalam perintah pelaksanaan mewakili urutan berurutan di mana tindakan itu dilaksanakan.
Soalan keempat anda:
Ya, pemahaman anda bahawa kedua-dua r2 dan r1 melihat tulisan awal 0 kerana A dan B bukan medan yang tidak menentu adalah betul. Medan tidak meruap boleh disimpan dalam daftar, yang boleh membawa kepada ketidakkonsistenan sementara.
Soalan kelima dan keenam anda:
Situasi yang diterangkan dalam susunan pelaksanaan kedua, di mana tulisan baca lihat yang berlaku kemudian, boleh berlaku dalam senario berbilang benang dunia sebenar. Contohnya mungkin:
Untuk mengelakkan ketidakkonsistenan seperti itu, medan yang tidak menentu boleh digunakan untuk memastikan bahawa membaca dan menulis dilakukan secara konsisten sebelum berlaku.
Atas ialah kandungan terperinci Apakah maksud \"berlaku-sebelum konsisten\" dalam konteks Spesifikasi Bahasa Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!