Rumah > Java > javaTutorial > Mengapakah Operasi Atom Bukan Lalai di Jawa?

Mengapakah Operasi Atom Bukan Lalai di Jawa?

DDD
Lepaskan: 2024-11-30 10:16:11
asal
725 orang telah melayarinya

Why Aren't Atomic Operations the Default in Java?

Mengapa Operasi Atom Bukan Lalai

Di Java, pengendali kenaikan (i ) bukan atom. Atomicity memastikan bahawa operasi selesai sepenuhnya sebelum operasi seterusnya bermula, menjamin hasil yang konsisten dan boleh dipercayai. Walau bagaimanapun, tidak semua kes penggunaan pengendali kenaikan memerlukan atomicity.

Pertimbangkan senario biasa untuk menambah pembilang dalam persekitaran berbilang benang. Menggunakan i akan memerlukan mekanisme penyegerakan yang mahal pada peringkat perisian dan perkakasan, kerana atomicity memerlukan akses eksklusif kepada pembolehubah dikongsi.

Jika atomicity dikuatkuasakan untuk semua operasi kenaikan, ia akan memperkenalkan overhed yang ketara dalam senario di mana ia berada. tidak perlu. Sebagai contoh, dalam konteks satu utas, di mana keadaan perlumbaan dua utas yang cuba menambah pembolehubah yang sama secara serentak tidak membimbangkan, kenaikan atom yang tidak cekap adalah tidak diperlukan.

Selain itu, menjadikan i atom akan pecah keserasian dengan bahasa pengaturcaraan popular, seperti C dan C . Selain itu, ia akan menimbulkan kekeliruan bagi pengaturcara yang beralih daripada bahasa tersebut, kerana mereka perlu menggunakan bentuk kenaikan bukan atom (i = i 1) dalam Java.

Malah pada peringkat arahan pemasangan, kenaikan atom operasi selalunya mempunyai kelemahan prestasi. Sebagai contoh, dalam seni bina x86, "awalan kunci" khas diperlukan untuk menjadikan arahan kenaikan atom, yang menimbulkan overhed tambahan.

Oleh itu, jika tiada penyegerakan atom yang jelas, i kekal sebagai bukan atom. operasi dalam Java, membolehkan pengoptimuman prestasi dalam senario di mana atomicity bukanlah satu keperluan yang ketat.

Atas ialah kandungan terperinci Mengapakah Operasi Atom Bukan Lalai di Jawa?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan