Pernyataan select digunakan untuk memilih dari beberapa operasi saluran kirim / terima. Pernyataan select memblokir sampai salah satu operasi kirim / terima siap. Jika beberapa operasi siap, salah satunya dipilih secara acak. Sintaksnya mirip dengan switch kecuali bahwa masing-masing pernyataan kasus akan menjadi operasi saluran. Mari selami beberapa kode untuk pemahaman yang lebih baik.

Dalam program di atas, fungsi server1 pada baris no. 8 sleeps selama 6 detik kemudian menulis teks dari server1 ke saluran ch. Fungsi server2 pada baris no. 12 tidur selama 3 detik dan kemudian menulis dari server2 ke saluran ch.

Fungsi utama memanggil go Goroutines server1 dan server2 sejalan no. 20 dan 21 masing-masing.

Dalam baris no. 22, kontrol mencapai pernyataan pilih. Pernyataan pilih memblokir sampai salah satu kasingnya siap. Dalam program saya di atas, server1 Goroutine menulis ke saluran output1 setelah 6 detik sedangkan server2 menulis ke saluran output2 setelah 3 detik. Jadi pernyataan pilih akan diblokir selama 3 detik dan akan menunggu server2 Goroutine untuk menulis ke saluran output2. Setelah 3 detik, program mencetak,

Penggunaan praktis dari select

Alasan di balik penamaan fungsi dalam program di atas sebagai server1 dan server2 adalah untuk menggambarkan penggunaan praktis dari select.

Mari kita asumsikan kita memiliki aplikasi misi kritis dan kita perlu mengembalikan output kepada pengguna secepat mungkin. Database untuk aplikasi ini direplikasi dan disimpan di berbagai server di seluruh dunia. Asumsikan bahwa fungsi server1 dan server2 sebenarnya berkomunikasi dengan 2 server tersebut. Waktu respons setiap server tergantung pada beban masing-masing dan penundaan jaringan. Kami mengirim permintaan ke kedua server dan kemudian menunggu di saluran yang sesuai untuk tanggapan menggunakan pernyataan pilih. Server yang merespons pertama dipilih oleh yang dipilih dan respons lainnya diabaikan. Dengan cara ini kami dapat mengirim permintaan yang sama ke beberapa server dan mengembalikan respons tercepat ke pengguna.
OKe itulah tadi pembahasan saya tentang Select dalam Bahasa Golang Part 1, semoga bermanfaat.