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

Leave a Comment

Parole chiave in Go

Parole chiave in Go

Parola chiave - Le parole chiave sono parole in un linguaggio che vengono utilizzate per qualche processo interno o rappresentano qualche azione predefinita. Ecco cosa devi sapere sulle parole chiave in Golang.

Tipi di dati in Golang

Tipi di dati in Golang

Il tipo di dati specifica il tipo di dati che una variabile Go valida può contenere. Nel linguaggio Go, i tipi sono suddivisi in quattro categorie come segue:

Argomenti delle funzioni in Golang

Argomenti delle funzioni in Golang

Go supporta due metodi principali per passare argomenti: passaggio per valore e passaggio per riferimento. Di default, Go utilizza il passaggio per valore.

Funzione che restituisce più valori in Golang

Funzione che restituisce più valori in Golang

Nel linguaggio Go è possibile restituire più valori da una funzione, utilizzando l'istruzione return. In altre parole, in una funzione, un'istruzione return può restituire più valori.

Istruzione Switch in Go

Istruzione Switch in Go

Golang, come la maggior parte degli altri linguaggi di programmazione, ha l'istruzione switch. Ecco come utilizzare l'istruzione switch in Golang.

Strutture e campi anonimi in Golang

Strutture e campi anonimi in Golang

Le strutture anonime in Golang sono strutture temporanee senza nome, utilizzate per scopi una tantum, mentre i campi anonimi consentono l'incorporamento di campi senza nome.

Come usare le Rune in Golang

Come usare le Rune in Golang

Cosa sono le rune in Golang? Come usare le Rune in Golang? L'articolo vi darà la risposta.

Come usare gli operatori in Golang

Come usare gli operatori in Golang

Gli operatori consentono di eseguire diversi tipi di operazioni sugli operandi. Nel linguaggio Go, gli operatori possono essere classificati in base alle loro diverse funzioni.

Identificatore vuoto in Golang

Identificatore vuoto in Golang

_(trattino basso) in Golang è chiamato identificatore vuoto. L'identificatore è un nome definito dall'utente dei componenti del programma, utilizzato a fini di identificazione.

Come creare un programma base in Golang

Come creare un programma base in Golang

Ciao mondo! è il primo programma base in qualsiasi linguaggio di programmazione. Puoi scrivere questo primo programma in Golang seguendo i passaggi sottostanti.

Come installare Go su Windows

Come installare Go su Windows

Golang può essere facilmente installato su Windows. Di seguito è riportata una guida dettagliata passo dopo passo per installare Golang su Windows.

Metodi con lo stesso nome in Golang

Metodi con lo stesso nome in Golang

Golang consente di creare due o più metodi con lo stesso nome nello stesso pacchetto, ma i destinatari di questi metodi devono essere di tipo diverso.

Funzioni in Go

Funzioni in Go

In Go, le funzioni sono blocchi di codice che eseguono attività specifiche e possono essere riutilizzati nel programma per risparmiare memoria, migliorare la leggibilità e risparmiare tempo.

Ambito delle variabili in Go

Ambito delle variabili in Go

L'ambito di una variabile in Golang determina la parte del programma in cui tale variabile è accessibile. In Go, tutti gli identificatori hanno un ambito lessicale che viene determinato in fase di compilazione.

Motivi per abbandonare Gboard e passare alla tastiera Samsung

Motivi per abbandonare Gboard e passare alla tastiera Samsung

Gboard è da tempo la tastiera preferita sui telefoni Android. Tuttavia, di recente molte persone sono passate alla tastiera Samsung e non se ne sono più pentite.

Dolci e romantici auguri di fine settimana per gli innamorati

Dolci e romantici auguri di fine settimana per gli innamorati

Invia dolci e romantici auguri di buon fine settimana alla tua dolce metà. Sebbene siano solo parole o messaggi, saranno doni spirituali significativi, che contribuiranno a rafforzare la vostra relazione.

La serie TV di Harry Potter ha bisogno dei seguenti elementi per avere successo

La serie TV di Harry Potter ha bisogno dei seguenti elementi per avere successo

Il remake di Harry Potter della HBO dovrebbe debuttare nel 2026. Ecco cosa rende la serie TV di Harry Potter un successo.

Immagini mozzafiato della superluna da tutto il mondo

Immagini mozzafiato della superluna da tutto il mondo

Non è raro trovare su Internet delle belle foto della luna. L'articolo riassumerà per voi le più belle immagini della luna del mondo.

Gli utenti AMD Ryzen dovrebbero installare questo aggiornamento del BIOS per un aumento gratuito delle prestazioni

Gli utenti AMD Ryzen dovrebbero installare questo aggiornamento del BIOS per un aumento gratuito delle prestazioni

Ora AMD ha risposto ai problemi della sua linea di CPU di punta dalle prestazioni inferiori alle aspettative con un nuovo aggiornamento che potrebbe garantire qualche frame al secondo in più.

Il valore di X scende da 44 miliardi di dollari a meno di 10 miliardi di dollari

Il valore di X scende da 44 miliardi di dollari a meno di 10 miliardi di dollari

Nell'ottobre 2022, Elon Musk ha speso 44 miliardi di dollari per acquisire X, ma ad oggi il valore della piattaforma è sceso del 78,6%, attestandosi a circa 9,4 miliardi di dollari.

Come la navicella spaziale Orion viene protetta dalle radiazioni estreme

Come la navicella spaziale Orion viene protetta dalle radiazioni estreme

Quando la missione Artemis I della NASA verrà lanciata con successo nello spazio e inizierà il suo viaggio attorno alla Luna nel 2022, non ci saranno astronauti a bordo, ma solo due manichini di dimensioni adulte.

Come rendere divertente la pulizia

Come rendere divertente la pulizia

Pulire non deve essere per forza un lavoro ingrato se lo si rende divertente. Ecco alcuni semplici modi per rendere le pulizie divertenti.

Cosè la Fortezza dellInfinito in Demon Slayer?

Cosè la Fortezza dellInfinito in Demon Slayer?

Demon Slayer: Infinity Fortress sta ricevendo molta attenzione da parte dei fan. Cosa c'è all'interno della Fortezza Infinita del Demon Slayer? Scopriamolo insieme!

ChatGPT potrebbe essere in esecuzione silenziosa sul tuo telefono: ecco come risolverlo

ChatGPT potrebbe essere in esecuzione silenziosa sul tuo telefono: ecco come risolverlo

Le conversazioni in background mantengono attiva la conversazione dell'utente con ChatGPT mentre utilizza altre app o quando lo schermo è spento. Ciò significa che ChatGPT può ascoltare e monitorare il comportamento degli utenti nell'utilizzo del telefono 24 ore su 24, 7 giorni su 7.

Gemini di Google risponde con parole strane e senza senso ripetute ad alcuni utenti

Gemini di Google risponde con parole strane e senza senso ripetute ad alcuni utenti

Di recente, alcuni utenti hanno notato che in alcune risposte Google Gemini presentava testo ripetitivo, caratteri strani e cose del tutto senza senso.

Codice completo dellultimo Luc Tung Tam Quoc e istruzioni per riscattare il codice

Codice completo dellultimo Luc Tung Tam Quoc e istruzioni per riscattare il codice

Code Luc Tung Tam Quoc offre ai nuovi giocatori tutto ciò di cui hanno bisogno per iniziare il loro viaggio.

Codice Giang Ho Ngu Tuyet e come inserire il codice

Codice Giang Ho Ngu Tuyet e come inserire il codice

Giang Ho Ngu Tuyet è un gioco MMORPG basato sulla generazione reciproca e sulla reciproca inibizione dei cinque elementi. Con 5 sette: Shaolin, Culto Ming, Wudang, Famiglia Yang e Ninja Celeste, basate sui cinque elementi: Metallo, Legno, Acqua, Fuoco e Terra.

Sfondo MIUI 13, Sfondo MIUI 13

Sfondo MIUI 13, Sfondo MIUI 13

Sfondi MIUI 13 con molti temi diversi, dall'astratto al paesaggio, combinati con colori vivaci e accattivanti tra cui gli utenti possono scegliere.

Come risolvere lerrore La protezione da virus e minacce è gestita dalla tua organizzazione

Come risolvere lerrore La protezione da virus e minacce è gestita dalla tua organizzazione

Cosa devi fare per risolvere l'errore La tua protezione da virus e minacce è gestita dalla tua organizzazione?