Casi da conoscere quando si utilizzano le istruzioni di selezione in Golang

Nel linguaggio Go, l'istruzione select è come l'istruzione switch , ma nell'istruzione select, l'istruzione case si riferisce alla comunicazione, ovvero all'operazione di invio o ricezione sul canale.

Casi da conoscere quando si utilizzano le istruzioni di selezione in Golang

Sintassi:

select{

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

In questo articolo impareremo come utilizzare il caso predefinito per evitare situazioni di stallo. Ma prima scopriamo cos'è il caso di deadlock quando si utilizza il comando select di Golang ?

Cose da sapere sul caso di stallo a Golang

Deadlock: quando si tenta di leggere o scrivere dati da un canale ma il canale è vuoto. Quindi blocca l'esecuzione corrente della goroutine e passa il controllo ad altre goroutine, ma se non è disponibile nessun'altra goroutine o se altre goroutine sono inattive a causa di questa situazione, il programma si bloccherà. Questo fenomeno è chiamato stallo. Come mostrato nell'esempio seguente:

Per esempio:

// 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: }="" }="">

Risultato:

fatal error: all goroutines are asleep - deadlock!

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

Per evitare questa situazione, utilizziamo il caso predefinito nell'istruzione select. In altre parole, quando si verifica un deadlock nel programma, viene eseguito il caso predefinito dell'istruzione select per evitare il deadlock. Come nell'esempio seguente, utilizziamo il caso predefinito nell'istruzione select per evitare il deadlock.

Per esempio:

// 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..!")="" }="" }="">

Risultato:

!.. Default case..!

È anche consentito utilizzare il caso predefinito quando l' istruzione select ha solo un canale nil . Come mostrato nell'esempio seguente, il canale c è nil, quindi viene eseguito il caso predefinito; se il caso predefinito qui non è disponibile, il programma si bloccherà per sempre e si verificherà un deadlock.

Per esempio:

// 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..!")="" }="" }="">

Risultato:

Default case..!

Lascia un commento

Come risolvere lerrore di mancata invio della chat di Microsoft Teams

Come risolvere lerrore di mancata invio della chat di Microsoft Teams

Problemi con l'errore di chat di Microsoft Teams che non invia messaggi? Scopri le soluzioni dettagliate per gli ultimi problemi di Teams, dalla cancellazione della cache alle modifiche di rete. Torna a chattare senza problemi in pochi minuti!

Come risolvere lerrore hardware di Microsoft Teams (correzione del registro 2026)

Come risolvere lerrore hardware di Microsoft Teams (correzione del registro 2026)

Stanco di crash di Microsoft Teams con errori gravi? Ottieni la comprovata correzione del registro 2026 che risolve il problema in pochi minuti. Guida passo passo, screenshot e suggerimenti per una risoluzione definitiva. Funziona con le versioni più recenti!

Come risolvere lerrore La scheda Wiki di Microsoft Teams non si carica

Come risolvere lerrore La scheda Wiki di Microsoft Teams non si carica

Hai problemi con il caricamento della scheda Wiki di Microsoft Teams? Scopri soluzioni passo passo comprovate per risolvere rapidamente il problema, ripristinare le schede Wiki e aumentare la produttività del team senza problemi.

Risoluzione dei problemi relativi al portachiavi di errore di Microsoft Teams per Mac

Risoluzione dei problemi relativi al portachiavi di errore di Microsoft Teams per Mac

Hai problemi con il portachiavi di errore di Microsoft Teams su Mac? Scopri soluzioni comprovate e dettagliate per macOS per tornare a collaborare senza problemi. Soluzioni rapide all'interno!

Come risolvere i problemi di audio ovattato o assente del microfono di Microsoft Teams

Come risolvere i problemi di audio ovattato o assente del microfono di Microsoft Teams

Stanco di sentire l'audio ovattato o assente nel microfono di Microsoft Teams? Scopri come risolvere i problemi del microfono di Microsoft Teams con passaggi rapidi e comprovati. Un audio nitido ti aspetta!

Come correggere gli errori di sincronizzazione della gestione delle attività di Microsoft Teams

Come correggere gli errori di sincronizzazione della gestione delle attività di Microsoft Teams

Stanco degli errori di sincronizzazione di Gestione Attività di Microsoft Teams che interrompono il tuo flusso di lavoro? Segui le nostre soluzioni dettagliate e dettagliate per ripristinare la perfetta sincronizzazione delle attività tra Teams, Planner e To Do. Soluzioni rapide per un sollievo immediato!

Come cancellare la cache di Microsoft Teams per risolvere i problemi di prestazioni

Come cancellare la cache di Microsoft Teams per risolvere i problemi di prestazioni

Hai problemi con la lentezza di Microsoft Teams? Scopri come svuotare la cache di Microsoft Teams passo dopo passo per risolvere problemi di prestazioni, ritardi, arresti anomali e aumentare la velocità su Windows, Mac, web e dispositivi mobili. Soluzioni rapide e efficaci!

Risoluzione degli errori di rete di Microsoft Teams su Wi-Fi pubblico

Risoluzione degli errori di rete di Microsoft Teams su Wi-Fi pubblico

Problemi di rete di Microsoft Teams su una rete Wi-Fi pubblica? Ottieni soluzioni immediate come modifiche alla VPN, controlli delle porte e cancellazione della cache per ripristinare chiamate e riunioni senza problemi. Guida passo passo per un rapido sollievo.

Dove trovare il tuo ID Microsoft Teams e le informazioni sullaccount

Dove trovare il tuo ID Microsoft Teams e le informazioni sullaccount

Hai difficoltà a trovare il tuo ID Microsoft Teams o i dettagli del tuo account? Questa guida dettagliata mostra esattamente dove trovare il tuo ID Microsoft Teams e le informazioni del tuo account su desktop, web, dispositivi mobili e altro ancora, per una collaborazione senza interruzioni.

Come risolvere lerrore 1200 di Microsoft Teams sul telefono (iOS/Android)

Come risolvere lerrore 1200 di Microsoft Teams sul telefono (iOS/Android)

Stanco dell'errore 1200 di Microsoft Teams che blocca le tue chiamate al telefono? Scopri soluzioni rapide e dettagliate per iOS e Android per tornare a lavorare in team senza intoppi, senza bisogno di competenze tecniche!