Pada sesi ini akan di bahas penggunaan select pada Channel
select statement digunakan untuk melakukan pemilihan dan memanage multiple channel yang dibuat. select statement akan melakukan blocking sampai ada salah satu dari case yang berjalan.
Mari kita asumsikan bahwa kita memiliki aplikasi dan kita perlu mengembalikan output ke pengguna secepat mungkin. Database untuk aplikasi ini direplikasi dan disimpan di server yang berbeda di seluruh dunia. Asumsikan bahwa fungsi server1 dan server2 sebenarnya berkomunikasi dengan 2 server tersebut. Waktu respons setiap server bergantung pada beban masing-masing dan performa jaringan. Kita mengirim permintaan ke kedua server dan kemudian menunggu. Server yang merespons pertama akan dipilih dan respons lainnya diabaikan. Dengan cara ini kita dapat mengirim permintaan yang sama ke beberapa server dan mengembalikan respons tercepat ke pengguna.
Default Case
Statement default dari select dapat dimanfaatkan jika belum ada satupun case yang siap dijalankan. Ini berguna untuk menghindari blocking.
Kita lihat bahwa pada kode di atas terdapat fungsi process yang bertigas sebagai pengirim data melalui Channel. Namun proses pengiriman akan delay 3 detik, sehingga kita menambahkan default pada select untuk dijalankan terlebih dahulu sambil menunggu proses penerimaan data.