Select
Select ile çoklu goroutine işlemlerinin iletişimini bekleyebiliriz. Örneğimizi görelim:
Yukarıdaki kodların bize ses ve video verisi sağlayacak bir programdan parça olduğu senaryosunu kuralım. Bu programda işlem yapabilmemiz için bize bu 2 verinin gelmesini beklememiz lazım. Verileri bekleme işlemini select ile yapıyoruz. Burada dikkat etmemiz gereken nokta 2 tane veri beklediğimiz için for atamalarında i < 2 olarak girmeliyiz. Çünkü i := 0 olduğu için i 2 olana kadar arada 2 sayı var. Bu sayı boşluğu da 2 veri almayı beklememizi sağlıyor. Örnek olarak i < 1 girip 2 veri almaya kalksak k2‘den gelen veriyi beklemeyecek bile. Tam tersi olarak 2 veri alacağımız halde i < 4 girsek program deadlock‘a girecektir. Yani başarısız bir program olacaktır.
Last updated