Kā lietot atlasīto paziņojumu Golangā?

Ka Lietot Atlasito Pazinojumu Golanga



A atlasiet paziņojumu in Golang ļauj izstrādātājiem sinhronizēt un sazināties starp Go rutīnām, kanāliem un datu straumēm. Tas ļauj programmai Go gaidīt vairāku kanālu operācijas vienlaikus un izpildīt pirmo gatavu darbību.

Šajā rakstā mēs izpētīsim, kā to izmantot atlasiet paziņojumu Golangā un sniedziet piemērus, lai palīdzētu sasniegt paralēlismu, vienlaicīgumu un sinhronizāciju Go programmās.

Kā lietot atlasīto paziņojumu Golangā?

Līdzīgi kā slēdzis paziņojumā, atlasiet paziņojumu ļauj atlasīt un izpildīt vienu izteiksmi no daudzām izteiksmēm, bet galvenā atšķirība starp izvēlieties un slēdzis ir tas atlasiet paziņojumu darbojas pēc gaidīšanas principa, kas nozīmē, ka atlasiet paziņojumu netiks izpildīts, kamēr komunikācija nebūs pabeigta.







Šeit saziņa attiecas uz datu sūtīšanu un saņemšanu pa jebkuru kanālu. Kad saziņa ir pabeigta, tiek veikta nākamā pārbaude, kas ļauj mums redzēt, ka Go valodas atlases paziņojums ir pilnībā atkarīgs no kanāla.



Sintakse atlases paziņojumam

Vienkāršā sintakse, ko izmanto atlasiet paziņojumu Izmantojot Go valodu, ir parādīts zemāk:



izvēlieties {
lietu kanāls_1 :
// kods, kas jāizpilda, kad kanāls_1 ir gatavs
lietu kanāls_2 :
// kods, kas jāizpilda, kad kanāls_2 ir gatavs
lietu kanāls_3 :
// kods, kas jāizpilda, kad kanāls_3 ir gatavs
lietu kanāls_4 :
// kods, kas jāizpilda, kad kanāls_4 ir gatavs
noklusējuma :
// kods, kas jāizpilda, ja neviens no kanāliem nav gatavs
}

Šeit:





  • Ietvaros a atlasiet paziņojumu , katrs gadījums apzīmē kanāla darbību, kas var būt saņemšanas vai sūtīšanas darbība.
  • The atlasiet paziņojumu gaida, līdz viens no gadījumiem ir gatavs, un pēc tam palaiž to un saistīto gadījuma paziņojumu.
  • Tas nejauši atlasa kanālu, ja ir vairāki kanāli, kas ir gatavi izpildei.

Kā izveidot kanālu Golangā

Lai pakalpojumā Go izveidotu kanālu, lietotāji var izmantot funkciju Make, kam seko chan atslēgvārdu un norādiet kanāla veidu, kas varētu būt int, virkne vai citi.

ch := veidot ( chan tips )

Ieviesiet atlases paziņojumu Golangā

Šeit mēs sniegsim vairākus piemērus, lai palīdzētu jums apgūt lietošanas pamatus atlasiet paziņojumu Golangā.



1. piemērs

Šis piemērs atlasiet paziņojumu parāda, kā tas darbojas, kad abi kanāli ir gatavi izpildei.

galvenā pakete

imports 'fmt'

galvenā funkcija ( ) {

uz viena := veidot ( chan starpt )

str := veidot ( čana virkne )

go chan_num ( uz viena )

dodieties uz chan_str ( str )

izvēlieties {

lietu Ch1 := <- uz viena :

fmt. Println ( 'Kanāla dati:' , Ch1 )

lietu Ch2 := <- str :

fmt. Println ( 'Kanāla dati:' , Ch2 )

}

}

func chan_num ( num chan starpt ) {

uz viena <- 67

}

func chan_str ( str chan virkne ) {

str <- 'Linux'

}

Iepriekš minētajā piemērā mēs izveidojām divus kanālus, uz viena, un str un mēs izmantojām Go funkcijas chan_num() lai nosūtītu datus uz num kanālu un chan_str() lai nosūtītu datus uz str kanālu. Tā kā programmā ir divi dažādi kanāli, mēs izmantojām atlasiet paziņojumu lai izpildītu vienu no tiem.

Lieta Ch1 nolasa vērtību no num kanāls un parāda to. Tāpat lieta Ch2 atgriež vērtību no str kanālu. Iepriekš minētā programma atgriež kanāla izvadi, kas ir gatava lietošanai. Izvade

2. piemērs

Ja vēlaties kanālam pievienot aizkavi un atgriezt cita kanāla izvadi, varat izmantot laiks.miegs() funkcija noteiktā kanālā. Tas ļauj konsolē izdrukāt otra kanāla izvadi. Šeit ir šāda gadījuma piemērs.

galvenā pakete

imports (

'fmt'

'laiks'

)

galvenā funkcija ( ) {

uz viena := veidot ( chan starpt )

str := veidot ( čana virkne )

go chan_num ( uz viena )

dodieties uz chan_str ( str )

izvēlieties {

lietu Ch1 := <- uz viena :

fmt. Println ( 'Kanāla dati:' , Ch1 )

lietu Ch2 := <- str :

fmt. Println ( 'Kanāla dati:' , Ch2 )

}

}

func chan_num ( num chan starpt ) {

uz viena <- 67

}

func chan_str ( str chan virkne ) {

laiks . Gulēt ( 5 * laiks . Otrkārt )

str <- 'Linux'

}

Iepriekš dotajā kodā mēs izmantojām laiks.Miegs() funkcija iekšpusē chan_str() funkciju. Tikai num kanāls ir gatavs izpildei pirmajās 5 sekundēs. Tā rezultātā, atlasiet paziņojumu vada lietu Ch1 .

Izvade

Piezīme: Abiem kanāliem varat pievienot aizkavi, lai aizkavētu kanālu izpildi.

Secinājums

The atlasiet paziņojumu Go ļauj atlasīt un izpildīt vienu izteiksmi no daudzām izteiksmēm, izmantojot gaidīšanas principu, kur paziņojums netiks izpildīts, kamēr komunikācija nav pabeigta. Iepriekš minētās vadlīnijas ietver atlasiet paziņojumu pamata sintakse un piemēri.