Cas à connaître lors de lutilisation dinstructions de sélection en Golang

Dans le langage Go, l'instruction select est comme l'instruction switch , mais dans l'instruction select, l'instruction case fait référence à la communication, c'est-à-dire à l'opération d'envoi ou de réception sur le canal.

Cas à connaître lors de l'utilisation d'instructions de sélection en Golang

Syntaxe:

select{

case SendOrReceive1: // Lệnh
case SendOrReceive2: // Lệnh
case SendOrReceive3: // Lệnh
.......
default: // Lệnh

Dans cet article, nous allons apprendre à utiliser le cas par défaut pour éviter le blocage. Mais d’abord, découvrons quel est le cas de blocage lors de l’utilisation de la commande Golang select ?

Informations à connaître sur les cas de blocage dans Golang

Blocage : lorsque vous essayez de lire ou d'écrire des données à partir d'un canal mais que le canal est vide. Il bloque donc l'exécution actuelle de la goroutine et passe le contrôle à d'autres goroutines, mais si aucune autre goroutine n'est disponible ou si d'autres goroutines sont au repos en raison de cette situation, le programme plantera. Ce phénomène est appelé blocage. Comme le montre l’exemple ci-dessous :

Par exemple:

// Chương trình Go minh hoạc
// cách deadlock phát sinh
package main 

// Hàm chính
func main() { 

	// Tạo một kênh
	// Deadlock phát sinh bởi
	// không có goroutine đang viết
	// vào kênh này, vì thế
	// lệnh select đã bị khóa mãi mãi
	c := make(chan int) 
	select { 
	case <-c: }="" }="">

Résultat:

fatal error: all goroutines are asleep - deadlock!

goroutine 1 [chan receive]:
main.main()

Pour éviter cette situation, nous utilisons le cas par défaut dans l'instruction select. En d'autres termes, lorsqu'un blocage se produit dans le programme, le cas par défaut de l'instruction select est exécuté pour éviter le blocage. Comme dans l'exemple ci-dessous, nous utilisons le cas par défaut dans l'instruction select pour éviter le blocage.

Par exemple:

// Chương trình Go minh họa cách giải quyết
// vấn đề deadlock bằng case mặc định
package main 

import "fmt"

// Hàm chính
func main() { 

	// Tạo 1 kênh
	c := make(chan int) 
	select { 
	case <-c: default:="" fmt.println("!..="" default="" case..!")="" }="" }="">

Résultat:

!.. Default case..!

Vous êtes également autorisé à utiliser le cas par défaut lorsque l' instruction select n'a qu'un canal nul . Comme indiqué dans l'exemple ci-dessous, le canal c est nul, donc le cas par défaut est exécuté si le cas par défaut ici n'est pas disponible, alors le programme se bloquera pour toujours et un blocage se produira.

Par exemple:

// Chương trình Go minh họa
// chạy case mặc định
package main 

import "fmt"

// Hàm chính
func main() { 

	// Tạo một kênh
	var c chan int

	select { 
	case x1 := <-c: fmt.println("value:="" ",="" x1)="" default:="" fmt.println("default="" case..!")="" }="" }="">

Résultat:

Default case..!

Laisser un commentaire

Comment jeter une batterie au lithium à Angers ? Les points de collecte et les précautions

Comment jeter une batterie au lithium à Angers ? Les points de collecte et les précautions

À Angers, découvrez où déposer une batterie au lithium, comment la sécuriser et quoi faire si elle est gonflée, endommagée ou chaude.

Comment jeter une batterie au lithium à Aix-en-Provence ?

Comment jeter une batterie au lithium à Aix-en-Provence ?

Découvrez où déposer une batterie au lithium à Aix-en-Provence et les précautions à prendre selon son état, sa taille et son appareil.

Comment jeter des néons à Nîmes ? Les bons points de collecte et les précautions à prendre

Comment jeter des néons à Nîmes ? Les bons points de collecte et les précautions à prendre

À Nîmes, les tubes fluorescents et LED ne vont pas à la poubelle. Découvrez où les déposer, comment les transporter et quoi faire s’ils se cassent.

Comment jeter un vélo à Perpignan ? Guide pratique du tri et du réemploi

Comment jeter un vélo à Perpignan ? Guide pratique du tri et du réemploi

Vélo usé à Perpignan : vérifiez le réemploi, le badge, l’adresse de la déchèterie et les précautions pour un vélo électrique.

Comment jeter un téléviseur à Reims ? Les solutions simples et les erreurs à éviter

Comment jeter un téléviseur à Reims ? Les solutions simples et les erreurs à éviter

À Reims, un téléviseur usagé est un DEEE : déchèterie, reprise en magasin ou enlèvement sur rendez-vous. Voici la marche à suivre sans erreur.

Prime d’activité et chômage : peut-on cumuler les deux ?

Prime d’activité et chômage : peut-on cumuler les deux ?

Prime d’activité et chômage peuvent parfois se cumuler. Découvrez dans quels cas, quelles ressources sont prises en compte et comment éviter les erreurs de déclaration.

Comment jeter un ordinateur à Aix-en-Provence ? Les solutions pratiques et sûres

Comment jeter un ordinateur à Aix-en-Provence ? Les solutions pratiques et sûres

À Aix-en-Provence, un ordinateur usagé est un DEEE : déchèterie, reprise en magasin, réemploi et effacement des données. Guide pratique 2026.

Comment jeter de l’huile de cuisson usagée à Nice ? Le guide pratique

Comment jeter de l’huile de cuisson usagée à Nice ? Le guide pratique

À Nice, où déposer l’huile de cuisson usagée ? Préparation, déchèteries, badge, horaires saisonniers et vérifications pour éviter les erreurs.

Déchèterie à Metz : horaires, accès et déchets acceptés

Déchèterie à Metz : horaires, accès et déchets acceptés

Déchèterie à Metz : horaires 2026, adresses, conditions d’accès, déchets acceptés ou refusés, limites de volume et conseils avant de partir.

Comment jeter une batterie externe à Annecy ?

Comment jeter une batterie externe à Annecy ?

Batterie externe intacte, gonflée ou fuyante : découvrez où la déposer à Annecy, comment la transporter et quelles erreurs éviter avec le lithium.