Comment utiliser l'instruction Select dans Golang ?

Comment Utiliser L Instruction Select Dans Golang



UN sélectionner l'instruction dans Golang permet aux développeurs de synchroniser et de communiquer entre les routines Go, les canaux et les flux de données. Il permet à un programme Go d'attendre plusieurs opérations de canal à la fois et d'exécuter la première opération prête.

Dans cet article, nous verrons comment utiliser sélectionner l'instruction dans Golang et fournissent des exemples pour vous aider à atteindre le parallélisme, la concurrence et la synchronisation dans les programmes Go.

Comment utiliser l'instruction Select dans Golang ?

Similaire à l'instruction switch, la sélectionner l'instruction nous permet de sélectionner et d'exécuter une expression parmi de nombreuses expressions, mais la principale différence entre sélectionner et le commutateur est que le sélectionner l'instruction fonctionne sur le principe de l'attente, ce qui signifie que le sélectionner l'instruction ne s'exécutera pas tant que la communication ne sera pas terminée.







Ici, la communication fait référence à l'envoi et à la réception de données sur un canal donné. Lorsque la communication est terminée, la vérification suivante est effectuée, ce qui nous permet de voir que l'instruction select du langage Go dépend entièrement du canal.



Syntaxe de l'instruction Select

La syntaxe simple utilisée pour le sélectionner l'instruction l'utilisation du langage Go est illustré ci-dessous :



sélectionner {
cas canal_1 :
// code à exécuter lorsque channel_1 est prêt
cas canal_2 :
// code à exécuter lorsque channel_2 est prêt
cas canal_3 :
// code à exécuter lorsque channel_3 est prêt
cas canal_4 :
// code à exécuter lorsque channel_4 est prêt
défaut :
// code à exécuter si aucun des canaux n'est prêt
}

Ici:





  • Dans un sélectionner l'instruction , chaque cas représente une opération de canal, qui peut être une opération de réception ou une opération d'envoi.
  • Le sélectionner l'instruction attend que l'un des cas soit prêt, puis l'exécute ainsi que l'instruction case associée.
  • Il sélectionne au hasard le canal au cas où plusieurs canaux seraient prêts à être exécutés.

Comment créer une chaîne dans Golang

Pour créer une chaîne dans Go, les utilisateurs peuvent utiliser la fonction make suivie de la chanson mot-clé et spécifiez le type de canal, qui peut être int, string ou autres.

ch := faire ( type de canal )

Implémenter l'instruction Select dans Golang

Ici, nous allons fournir plusieurs exemples pour vous aider à apprendre les bases de l'utilisation de sélectionner l'instruction à Golang.



Exemple 1

L'exemple suivant de la sélectionner l'instruction montre comment il fonctionne lorsque les deux canaux sont prêts à être exécutés.

paquet principal

importer 'fmt'

fonction principale ( ) {

sur une := faire ( chanson entier )

chaîne := faire ( chaîne de chan )

aller chan_num ( sur une )

aller chan_str ( chaîne )

sélectionner {

cas Ch1 := <- sur une :

fmt. Imprimerln ( 'Données de la chaîne :' , Ch1 )

cas Ch2 := <- chaîne :

fmt. Imprimerln ( 'Données de la chaîne :' , Ch2 )

}

}

func chan_num ( num chan entier ) {

sur une <- 67

}

func chan_str ( chaîne str chan ) {

chaîne <- 'Linux'

}

Dans l'exemple ci-dessus, nous avons créé deux canaux, sur une, et chaîne et nous avons utilisé les fonctions Go chan_num() pour envoyer des données au canal numérique et chan_str() pour envoyer des données au canal str. Parce que le programme contient deux canaux différents, nous avons utilisé le sélectionner l'instruction pour exécuter l'un d'eux.

Cas Ch1 lit la valeur de la canal numérique et l'affiche. De même, le cas Ch2 renvoie la valeur de la chaîne canaliser. Le programme ci-dessus renvoie la sortie du canal qui est prêt à être utilisé. Sortir

Exemple 2

Si vous souhaitez ajouter un délai à un canal et renvoyer la sortie d'un autre canal, vous pouvez utiliser le le sommeil de temps() fonction sur un canal spécifié. Cela vous permet d'imprimer la sortie de l'autre canal sur la console. Voici un exemple d'un tel cas.

paquet principal

importer (

'fmt'

'temps'

)

fonction principale ( ) {

sur une := faire ( chanson entier )

chaîne := faire ( chaîne de chan )

aller chan_num ( sur une )

aller chan_str ( chaîne )

sélectionner {

cas Ch1 := <- sur une :

fmt. Imprimerln ( 'Données de la chaîne :' , Ch1 )

cas Ch2 := <- chaîne :

fmt. Imprimerln ( 'Données de la chaîne :' , Ch2 )

}

}

func chan_num ( num chan entier ) {

sur une <- 67

}

func chan_str ( chaîne str chan ) {

temps . Dormir ( 5 * temps . Deuxième )

chaîne <- 'Linux'

}

Dans le code ci-dessus, nous avons utilisé le le sommeil de temps() fonction à l'intérieur du chan_str() fonction. Seul le canal num est prêt à être exécuté pendant les 5 premières secondes. En conséquence, le sélectionner l'instruction exécute le cas Ch1 .

Sortir

Note: Vous pouvez ajouter un délai aux deux canaux pour retarder l'exécution des canaux.

Conclusion

Le sélectionner l'instruction in Go permet la sélection et l'exécution d'une expression parmi de nombreuses expressions en utilisant le principe d'attente, où l'instruction ne s'exécutera pas tant que la communication ne sera pas terminée. Les lignes directrices susmentionnées comprennent sélectionner l'instruction syntaxe de base et exemples.