Go Channels and Deadlocks
Coretan kod Go yang disediakan menggambarkan isu kebuntuan klasik yang melibatkan saluran. Apabila hanya satu nilai dihantar ke saluran c1, kod tersebut beroperasi seperti yang dimaksudkan, bertukar-tukar nilai antara goroutine melalui saluran c1 dan c2. Walau bagaimanapun, menghantar nilai kedua kepada c1 daripada goroutine utama membawa kepada kebuntuan.
Kebuntuan berlaku kerana kedua-dua goroutine secara berterusan menghantar nilai antara saluran tanpa mekanisme untuk memakan atau keluar dari gelung. Setiap goroutine menunggu nilai pada saluran masing-masing, dan apabila satu tiba, ia menghantarnya kembali ke saluran lain. Ini mewujudkan gelung tak terhingga yang mana goroutine tidak boleh maju.
Menyahpepijat Kebuntuan
Terdapat beberapa teknik untuk menyahpepijat kebuntuan dalam kod Go:
Atas ialah kandungan terperinci Mengapa Menghantar Dua Nilai ke Saluran Menyebabkan Kebuntuan dalam Kod Go Ini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!