Pembolehubah dan benang yang dikongsi.Kunci

WBOY
Lepaskan: 2024-02-05 22:27:10
ke hadapan
1077 orang telah melayarinya

Pembolehubah dan benang yang dikongsi.Kunci

Kandungan soalan

Di Java, nilai pembolehubah yang dikongsi dalam benang boleh tersekat melainkan anda menggunakan operasi atom atau mekanisme penyegerakan benang lain.

Diberikan GIL dalam CPython. Saya melihat nilai dalam Lock inc di mana: Walaupun dalam a += 1 simpulan bahasa yang mengelirukan, terdapat beberapa langkah yang dilakukan sebelum memberikan nilai. Untuk mengelakkan keadaan perlumbaan.

Tetapi dalam kes seperti a = 1 tiada kunci. Selepas benang mengemas kini a, adakah mungkin untuk meminta benang A dan B membaca nilai yang berbeza bagi a?

Cara lain untuk bertanya soalan ini ialah, adakah Lock memastikan penyebaran nilai bersama, sedangkan ketiadaan Lock tidak?


Jawapan betul


Masalahnya bukan a = 1。如果您在整个代码中所做的唯一一件事是将 a. Jika satu-satunya perkara yang anda lakukan dalam keseluruhan kod anda ditetapkan a kepada pelbagai nilai, maka anda tidak memerlukan kunci.

Walau bagaimanapun, jika anda menetapkan a = 1 的同时,代码中的其他地方正在执行 a = a + 1,那么您需要锁定它们。您锁定了 a = 1,这样如果其他人递增 a,它将完全在您设置 a semasa di tempat lain dalam kod anda melakukan a = a + 1, maka anda perlu menguncinya. Anda mengunci

supaya jika orang lain menambah a, ia akan berlaku tepat sebelum atau selepas anda menetapkan a.

Jadi dalam hampir semua kes, melainkan anda benar-benar tahu apa yang anda lakukan, kunci adalah penyelesaian yang paling mudah. 🎜

Atas ialah kandungan terperinci Pembolehubah dan benang yang dikongsi.Kunci. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:stackoverflow.com
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