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..!
Sign up and earn $1000 a day ⋙

Leave a Comment

Mots-clés en Go

Mots-clés en Go

Mot-clé - Les mots-clés sont des mots dans une langue qui sont utilisés pour un processus interne ou qui représentent une action prédéfinie. Voici ce que vous devez savoir sur les mots-clés dans Golang.

Types de données dans Golang

Types de données dans Golang

Le type de données spécifie le type de données qu'une variable Go valide peut contenir. Dans le langage Go, les types sont divisés en quatre catégories comme suit :

Arguments de fonction dans Golang

Arguments de fonction dans Golang

Go prend en charge deux manières principales de transmettre des arguments : le passage par valeur et le passage par référence. Go utilise le passage par valeur par défaut.

Fonction renvoyant plusieurs valeurs en Golang

Fonction renvoyant plusieurs valeurs en Golang

Dans le langage Go, vous êtes autorisé à renvoyer plusieurs valeurs à partir d'une fonction, à l'aide de l'instruction return. En d’autres termes, dans une fonction, une instruction de retour peut renvoyer plusieurs valeurs.

Instruction Switch en Go

Instruction Switch en Go

Golang, comme la plupart des autres langages de programmation, possède une instruction switch. Voici comment utiliser l'instruction switch dans Golang.

Structures et champs anonymes dans Golang

Structures et champs anonymes dans Golang

Les structures anonymes dans Golang sont des structures temporaires sans nom utilisées à des fins ponctuelles, tandis que les champs anonymes permettent l'intégration de champs sans nom.

Comment utiliser Rune dans Golang

Comment utiliser Rune dans Golang

Que sont les runes dans Golang ? Comment utiliser Rune dans Golang ? L'article vous donnera la réponse.

Comment utiliser les opérateurs dans Golang

Comment utiliser les opérateurs dans Golang

Les opérateurs nous permettent d’effectuer différents types d’opérations sur les opérandes. Dans le langage Go, les opérateurs peuvent être classés en fonction de leurs différentes fonctions.

Identifiant vide dans Golang

Identifiant vide dans Golang

_(underscore) dans Golang est appelé identifiant vide. L'identifiant est un nom défini par l'utilisateur des composants du programme utilisés à des fins d'identification.

Comment créer un programme de base en Golang

Comment créer un programme de base en Golang

Bonjour le monde! est le premier programme de base dans tout langage de programmation. Vous pouvez écrire ce premier programme en Golang en suivant les étapes ci-dessous.

Comment installer Go sur Windows

Comment installer Go sur Windows

Golang peut être facilement installé sur Windows. Vous trouverez ci-dessous un guide détaillé étape par étape pour installer Golang sur Windows.

Méthodes portant le même nom dans Golang

Méthodes portant le même nom dans Golang

Golang permet de créer deux ou plusieurs méthodes portant le même nom dans le même package, mais les récepteurs de ces méthodes doivent être de types différents.

Fonctions en Go

Fonctions en Go

En Go, les fonctions sont des blocs de code qui exécutent des tâches spécifiques, qui peuvent être réutilisées dans tout le programme pour économiser de la mémoire, améliorer la lisibilité et gagner du temps.

Portée variable en Go

Portée variable en Go

La portée d'une variable dans Golang détermine la partie du programme où cette variable est accessible. En Go, tous les identifiants ont une portée lexicale qui est déterminée au moment de la compilation.

Comment créer un effet daffiche pour vos photos dans Photoshop

Comment créer un effet daffiche pour vos photos dans Photoshop

Ajoutez un effet d'affiche rapide et facile à vos images à l'aide de Photoshop pour recréer l'aspect classique des affiches imprimées avec des couleurs d'encre limitées.

Il est temps de passer à Passkey : lalternative au mot de passe anti-phishing !

Il est temps de passer à Passkey : lalternative au mot de passe anti-phishing !

Avec passkey, l'alternative moderne aux mots de passe traditionnels, vous n'aurez plus jamais à vous soucier de mémoriser, de gérer (avec ou sans gestionnaire de mots de passe) ou de réinitialiser votre mot de passe.

Comment sauvegarder le navigateur : signets, extensions, mots de passe, etc.

Comment sauvegarder le navigateur : signets, extensions, mots de passe, etc.

Que vous changiez de navigateur de manière permanente ou que vous souhaitiez simplement réduire le risque de perte de données, vous devez sauvegarder votre navigateur régulièrement.

Why do buffaloes and cows only need to eat grass to get enough nutrients?

Why do buffaloes and cows only need to eat grass to get enough nutrients?

Why do cattle eat grass and still get fat and produce nutritious milk? If you want to know why grass-eating animals get fat, please read the article below.

Supplements that people with irritable bowel syndrome should not take

Supplements that people with irritable bowel syndrome should not take

Not all supplements are beneficial for irritable bowel syndrome (IBS), some may even worsen your symptoms.

6 applications iMessage pour les discussions de groupe

6 applications iMessage pour les discussions de groupe

Il existe de nombreuses applications iMessage que vous pouvez installer pour les discussions de groupe, améliorant ainsi l'expérience avec les membres du groupe. Voici une liste de 6 applications iMessage pour les discussions de groupe.

Comment remplacer la pile CMOS

Comment remplacer la pile CMOS

Si votre ordinateur perd ses paramètres d'heure ou de date ou affiche un message d'erreur de lecture CMOS, d'erreur de somme de contrôle CMOS ou de défaillance de la batterie CMOS, la batterie CMOS doit être remplacée.

Latest Super Beast Leader Code and how to enter code

Latest Super Beast Leader Code and how to enter code

Super Beast Leader Code will help you achieve attractive rewards to support players to become a super trainer. Below is the list of the latest Super Beast Leader codes and how to enter the code.

How to replace battery for Toshiba air conditioner remote control

How to replace battery for Toshiba air conditioner remote control

How to replace the battery for Toshiba air conditioner remote control? Please read the article below to learn how to replace the battery for Toshiba air conditioner remote control.

5 raisons dessayer Google Gemini

5 raisons dessayer Google Gemini

Bien que moins largement évoquée que certains de ses concurrents, l'IA Gemini de Google a beaucoup d'atouts - et voici cinq raisons pour lesquelles Gemini mérite votre attention.

Un film de 3 minutes réalisé avec lIA effraie lindustrie japonaise de lanimation

Un film de 3 minutes réalisé avec lIA effraie lindustrie japonaise de lanimation

Netflix a récemment publié un film d'animation de 3 minutes intitulé The Dog and the Boy, réalisé avec la technologie de l'IA, sur la chaîne YouTube de la société pour le marché japonais.

How to fix error PXE-E61: Media Test Failure, Check Cable

How to fix error PXE-E61: Media Test Failure, Check Cable

PXE-E61 errors are related to the Preboot eXecution Environment (PXE) - supported by some motherboards. PXE is a special boot mode that allows the computer to search for and load a bootable operating system over the network instead of from a local hard drive.

Comment utiliser Microsoft Authenticator comme gestionnaire de mots de passe

Comment utiliser Microsoft Authenticator comme gestionnaire de mots de passe

Explorons comment vous pouvez utiliser cette application d’authentification à deux facteurs populaire pour protéger vos mots de passe sur n’importe quel appareil.

OpenAI Challenges Google Chrome With Its New Browser

OpenAI Challenges Google Chrome With Its New Browser

OpenAI is reportedly working on a web browser project that has the potential to compete directly with Google Chrome.

Instructions pour corriger le Gestionnaire des tâches désactivé par votre administrateur

Instructions pour corriger le Gestionnaire des tâches désactivé par votre administrateur

Vous vous demandez peut-être pourquoi le Gestionnaire des tâches est désactivé ? Mais ne vous inquiétez pas ! L'article suivant vous guidera à travers les meilleures solutions pour réparer le Gestionnaire des tâches lorsqu'il ne fonctionne pas.