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.

Os melhores laptops para estudantes em 2025

Os melhores laptops para estudantes em 2025

Os alunos precisam de um tipo específico de laptop para seus estudos. Ele não deve apenas ser potente o suficiente para um bom desempenho na área de estudo escolhida, mas também compacto e leve o suficiente para ser carregado o dia todo.

Como adicionar uma impressora ao Windows 10

Como adicionar uma impressora ao Windows 10

Adicionar uma impressora ao Windows 10 é simples, embora o processo para dispositivos com fio seja diferente do que para dispositivos sem fio.

Como verificar a RAM e verificar erros de RAM no seu computador com a maior taxa de precisão

Como verificar a RAM e verificar erros de RAM no seu computador com a maior taxa de precisão

Como você sabe, a RAM é um componente de hardware muito importante em um computador, atuando como memória para processar dados e é o fator que determina a velocidade de um laptop ou PC. No artigo abaixo, o WebTech360 apresentará algumas maneiras de verificar erros de RAM usando software no Windows.

Diferença entre TV comum e Smart TV

Diferença entre TV comum e Smart TV

As Smart TVs realmente conquistaram o mundo. Com tantos recursos excelentes e conectividade à Internet, a tecnologia mudou a maneira como assistimos TV.

Por que o freezer não tem luz, mas a geladeira tem?

Por que o freezer não tem luz, mas a geladeira tem?

Geladeiras são eletrodomésticos comuns em residências. As geladeiras geralmente têm 2 compartimentos, o compartimento frio é espaçoso e tem uma luz que acende automaticamente toda vez que o usuário o abre, enquanto o compartimento do freezer é estreito e não tem luz.

2 maneiras de corrigir o congestionamento da rede que deixa o Wi-Fi lento

2 maneiras de corrigir o congestionamento da rede que deixa o Wi-Fi lento

As redes Wi-Fi são afetadas por muitos fatores além de roteadores, largura de banda e interferência, mas existem algumas maneiras inteligentes de melhorar sua rede.

Como fazer downgrade do iOS 17 para o iOS 16 sem perder dados usando o Tenorshare Reiboot

Como fazer downgrade do iOS 17 para o iOS 16 sem perder dados usando o Tenorshare Reiboot

Se você quiser voltar para o iOS 16 estável no seu telefone, aqui está o guia básico para desinstalar o iOS 17 e fazer o downgrade do iOS 17 para o 16.

O que acontece com o corpo quando você come iogurte todos os dias?

O que acontece com o corpo quando você come iogurte todos os dias?

Iogurte é um alimento maravilhoso. É bom comer iogurte todos os dias? Quando você come iogurte todos os dias, como seu corpo muda? Vamos descobrir juntos!

Que tipo de arroz é melhor para a saúde?

Que tipo de arroz é melhor para a saúde?

Este artigo discute os tipos de arroz mais nutritivos e como maximizar os benefícios para a saúde de qualquer arroz que você escolher.

Como acordar na hora certa pela manhã

Como acordar na hora certa pela manhã

Estabelecer um horário de sono e uma rotina para dormir, mudar o despertador e ajustar a dieta são algumas das medidas que podem ajudar você a dormir melhor e acordar na hora certa pela manhã.

Dicas para jogar Rent Please! Simulador de Proprietário para Iniciantes

Dicas para jogar Rent Please! Simulador de Proprietário para Iniciantes

Alugue, por favor! Landlord Sim é um jogo de simulação para dispositivos móveis para iOS e Android. Você jogará como proprietário de um complexo de apartamentos e começará a alugar um apartamento com o objetivo de reformar o interior do seu apartamento e deixá-lo pronto para inquilinos.

Últimos códigos de defesa de torre de banheiro e como inseri-los

Últimos códigos de defesa de torre de banheiro e como inseri-los

Obtenha o código do jogo Bathroom Tower Defense Roblox e resgate recompensas emocionantes. Elas ajudarão você a melhorar ou desbloquear torres com maior dano.

Estrutura, símbolos e princípios de funcionamento dos transformadores

Estrutura, símbolos e princípios de funcionamento dos transformadores

Vamos aprender sobre a estrutura, os símbolos e os princípios de operação dos transformadores da maneira mais precisa.

4 maneiras pelas quais a IA está melhorando as Smart TVs

4 maneiras pelas quais a IA está melhorando as Smart TVs

De melhor qualidade de imagem e som a controle de voz e muito mais, esses recursos com tecnologia de IA estão tornando as smart TVs muito melhores!

Por que o ChatGPT é melhor que o DeepSeek

Por que o ChatGPT é melhor que o DeepSeek

Inicialmente, as pessoas tinham grandes esperanças no DeepSeek. Como um chatbot de IA comercializado como um forte concorrente do ChatGPT, ele promete recursos e experiências de bate-papo inteligentes.