Casos a serem conhecidos ao usar instruções de seleção em Golang

Na linguagem Go, a instrução select é como a instrução switch , mas na instrução select, a instrução case se refere à comunicação, ou seja, enviar ou receber uma operação no canal.

Casos a serem conhecidos ao usar instruções de seleção em Golang

Sintaxe:

select{

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

Neste artigo, aprenderemos como usar o caso padrão para evitar deadlock. Mas primeiro, vamos descobrir o que é o caso de deadlock ao usar o comando select do Golang ?

Coisas que você precisa saber sobre o caso de impasse em Golang

Deadlock: Quando você tenta ler ou gravar dados de um canal, mas o canal está vazio. Então ele bloqueia a execução atual da goroutine e passa o controle para outras goroutines, mas se nenhuma outra goroutine estiver disponível ou outras goroutines estiverem em repouso devido a essa situação, o programa travará. Esse fenômeno é chamado de deadlock. Conforme mostrado no exemplo abaixo:

Por exemplo:

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

Resultado:

fatal error: all goroutines are asleep - deadlock!

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

Para evitar essa situação, usamos o caso padrão na instrução select. Em outras palavras, quando ocorre um deadlock no programa, o caso padrão da instrução select é executado para evitar o deadlock. Como no exemplo abaixo, usamos o caso padrão na instrução select para evitar deadlock.

Por exemplo:

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

Resultado:

!.. Default case..!

Você também tem permissão para usar o caso padrão quando a instrução select tem apenas um canal nulo . Como mostrado no exemplo abaixo, o canal c é nulo, então o caso padrão é executado. Se o caso padrão aqui não estiver disponível, o programa será bloqueado para sempre e ocorrerá um deadlock.

Por exemplo:

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

Resultado:

Default case..!
Sign up and earn $1000 a day ⋙

Leave a Comment

Como usar constantes em Golang

Como usar constantes em Golang

O que é constante ou const em Golang? Aqui está o que você precisa saber sobre o uso de constantes em Go.

Funções voláteis em Golang

Funções voláteis em Golang

Funções variádicas em Go permitem que você passe um número variável de argumentos para uma função. Aqui está tudo o que você precisa saber sobre funções voláteis em Golang.

Parâmetros de retorno nomeados em Golang

Parâmetros de retorno nomeados em Golang

Em Golang, parâmetros de retorno nomeados são frequentemente chamados de parâmetros nomeados. Golang permite nomear os parâmetros de retorno ou resultados de funções na assinatura ou definição da função.

Palavras-chave em Go

Palavras-chave em Go

Palavra-chave - Palavras-chave são palavras em um idioma que são usadas para algum processo interno ou representam alguma ação predefinida. Aqui estão as coisas que você precisa saber sobre palavras-chave em Golang.

Tipos de dados em Golang

Tipos de dados em Golang

O tipo de dados especifica o tipo de dados que uma variável Go válida pode conter. Na linguagem Go, os tipos são divididos em quatro categorias, como segue:

Argumentos de função em Golang

Argumentos de função em Golang

Go suporta duas maneiras principais de passar argumentos: Passagem por valor e Passagem por referência. Go usa passagem por valor por padrão.

Função retornando múltiplos valores em Golang

Função retornando múltiplos valores em Golang

Na linguagem Go, você pode retornar vários valores de uma função, usando a instrução return. Em outras palavras, em uma função, uma instrução return pode retornar vários valores.

Instrução Switch em Go

Instrução Switch em Go

Golang como a maioria das outras linguagens de programação tem instrução switch. Veja como usar a instrução switch em Golang.

Estruturas e campos anônimos em Golang

Estruturas e campos anônimos em Golang

Estruturas anônimas em Golang são estruturas temporárias sem nomes usadas para propósitos únicos, enquanto campos anônimos permitem a incorporação de campos sem nome.

Como usar Runa em Golang

Como usar Runa em Golang

O que são Runas em Golang? Como usar Runa em Golang? O artigo lhe dará a resposta.

Como usar operadores em Golang

Como usar operadores em Golang

Operadores nos permitem realizar diferentes tipos de operações em operandos. Na linguagem Go, os operadores podem ser classificados com base em suas diferentes funções.

Identificador vazio em Golang

Identificador vazio em Golang

_(sublinhado) em Golang é chamado de Identificador em Branco. Identificador é um nome definido pelo usuário para componentes de programa usados ​​para fins de identificação.

Como criar um programa básico em Golang

Como criar um programa básico em Golang

Olá, mundo! é o primeiro programa básico em qualquer linguagem de programação. Você pode escrever este primeiro programa em Golang seguindo os passos abaixo.

Como instalar o Go no Windows

Como instalar o Go no Windows

O Golang pode ser facilmente instalado no Windows. Abaixo está um guia passo a passo detalhado para instalar o Golang no Windows.

A tradução de animais por IA ajuda os humanos a entender os latidos dos cães

A tradução de animais por IA ajuda os humanos a entender os latidos dos cães

Graças à inteligência artificial (IA), o que parece um sonho de cinema — humanos sendo capazes de entender a linguagem animal — pode em breve se tornar realidade.

Para que servem as configurações da câmera do seu telefone?

Para que servem as configurações da câmera do seu telefone?

Saber o que cada recurso faz pode fazer a diferença entre uma boa foto e uma ótima foto.

OpenAI lança nova ferramenta para ajudar desenvolvedores a criar agentes de IA

OpenAI lança nova ferramenta para ajudar desenvolvedores a criar agentes de IA

Ao visualizar os agentes de IA como o futuro da indústria de inteligência artificial, a OpenAI admite que construir agentes poderosos de “nível industrial” com as ferramentas atuais é muito difícil.

Pocket Casts: o melhor aplicativo de podcast agora gratuito para desktop

Pocket Casts: o melhor aplicativo de podcast agora gratuito para desktop

Ótimas notícias para os fãs de podcast. Atualmente, o Pocket Casts pode ser usado gratuitamente na web e também em aplicativos para Mac e Windows.

Veja as primeiras imagens do módulo de pouso Blue Ghost na superfície da Lua

Veja as primeiras imagens do módulo de pouso Blue Ghost na superfície da Lua

Com a chegada do módulo de pouso Blue Ghost à Lua neste fim de semana, astrônomos do mundo todo aguardam ansiosamente uma série de novas imagens impressionantes que proporcionarão uma visão verdadeiramente envolvente, e até mesmo sem precedentes, do satélite natural do nosso planeta.

Como usar constantes em Golang

Como usar constantes em Golang

O que é constante ou const em Golang? Aqui está o que você precisa saber sobre o uso de constantes em Go.

Como recuperar a senha hackeada do Facebook e o e-mail de registro perdido

Como recuperar a senha hackeada do Facebook e o e-mail de registro perdido

Ao usar o Facebook, às vezes sua conta será hackeada, você perderá sua senha ou até mesmo perderá seu e-mail de registro do Facebook. Então, como você pode recuperar sua conta do Facebook quando perder sua senha e seu e-mail de registro?

Como falsificar mensagens no iPhone, criar mensagens no Messenger

Como falsificar mensagens no iPhone, criar mensagens no Messenger

Criar mensagens falsas para trollar as pessoas é muito simples quando podemos usar aplicativos de criação de mensagens falsas, ou usar alguns sites que criam mensagens falsas totalmente grátis.

Código Ultimate Evolution: Último Saiyan e como inserir o código

Código Ultimate Evolution: Último Saiyan e como inserir o código

O código Ultimate Evolution Saiyan oferece aos jogadores uma série de recompensas atraentes e, graças a isso, no início do jogo, como diamantes, exp, cápsulas de exp, ouro, fragmentos de personagem

Como editar a foto de pré-visualização no perfil do Instagram

Como editar a foto de pré-visualização no perfil do Instagram

O Instagram mudou recentemente o layout da grade do perfil para uma visualização vertical 4:5. E os usuários podem personalizar a imagem de visualização para focar no conteúdo que desejam.

Código Monkey King: Jornada para o Oeste mais recente 25/04/2025

Código Monkey King: Jornada para o Oeste mais recente 25/04/2025

O Code Monkey King oferece aos jogadores uma série de recompensas atraentes, como moeda, fragmentos de personagens aleatórios de 5 estrelas, Pílula de Ouro das Nove Revoluções, Pacotes de Recursos aleatórios

11 maneiras criativas de usar o Microsoft Word

11 maneiras criativas de usar o Microsoft Word

Quando você pensa no Microsoft Word, o que vem à mente? Documento? Retomar? Embora esses sejam certamente seus usos principais, o Word também é uma ferramenta surpreendentemente versátil para uma variedade de projetos criativos.

Como marcar amigos no status do WhatsApp

Como marcar amigos no status do WhatsApp

O WhatsApp atualizou o recurso de marcar amigos no status do WhatsApp para todas as contas, nas versões Android e iOS.

Coleção de receitas de coquetéis de café deliciosos, fáceis de fazer e de qualidade para todos

Coleção de receitas de coquetéis de café deliciosos, fáceis de fazer e de qualidade para todos

Você ama café e quer tentar fazer seu próprio coquetel de café? Então o artigo abaixo irá resumir para você as receitas para fazer coquetéis de café simples, deliciosos e atraentes.

Bleach: Personagens com mais mudanças na aparência

Bleach: Personagens com mais mudanças na aparência

Embora existam muitos personagens na série Bleach que podem ser considerados reconhecíveis, isso não significa necessariamente que eles tenham a mesma aparência do início ao fim. Abaixo estão os personagens de Bleach que tiveram mudanças significativas na aparência.