Casos a conocer al utilizar sentencias de selección en Golang

En el lenguaje Go, la declaración select es como la declaración switch , pero en la declaración select, la declaración case se refiere a la comunicación, es decir, la operación de envío o recepción en el canal.

Casos a conocer al utilizar sentencias de selección en Golang

Sintaxis:

select{

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

En este artículo, aprenderemos cómo utilizar el caso predeterminado para evitar el bloqueo. Pero primero, descubramos qué es el caso de bloqueo cuando se usa el comando de selección de Golang .

Cosas que debe saber sobre el caso de estancamiento en Golang

Bloqueo: cuando intenta leer o escribir datos de un canal pero el canal está vacío. Por lo tanto, bloquea la ejecución actual de la goroutine y pasa el control a otras goroutines, pero si no hay otra goroutine disponible o si otras goroutines están en reposo debido a esta situación, el programa se bloqueará. Este fenómeno se llama punto muerto. Como se muestra en el siguiente ejemplo:

Por ejemplo:

// 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 esta situación, utilizamos el caso predeterminado en la declaración select. En otras palabras, cuando se produce un bloqueo en el programa, se ejecuta el caso predeterminado de la instrucción select para evitar el bloqueo. Como en el ejemplo a continuación, utilizamos el caso predeterminado en la declaración select para evitar el bloqueo.

Por ejemplo:

// 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..!

También se le permite utilizar el caso predeterminado cuando la declaración de selección solo tiene un canal nulo . Como se muestra en el ejemplo a continuación, el canal c es nulo, por lo que se ejecuta el caso predeterminado; si el caso predeterminado aquí no está disponible, el programa se bloqueará para siempre y se producirá un bloqueo.

Por ejemplo:

// 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

Cómo usar constantes en Golang

Cómo usar constantes en Golang

¿Qué es Constante o Const en Golang? Esto es lo que necesita saber sobre el uso de constantes en Go.

Funciones volátiles en Golang

Funciones volátiles en Golang

Las funciones variádicas en Go le permiten pasar una cantidad variable de argumentos a una función. Aquí encontrará todo lo que necesita saber sobre las funciones volátiles en Golang.

Parámetros de retorno con nombre en Golang

Parámetros de retorno con nombre en Golang

En Golang, los parámetros de retorno con nombre a menudo se denominan parámetros con nombre. Golang permite nombrar los parámetros de retorno o los resultados de las funciones en la firma o definición de la función.

Palabras clave en Go

Palabras clave en Go

Palabra clave: Las palabras clave son palabras en un lenguaje que se utilizan para algún proceso interno o representan alguna acción predefinida. Aquí tienes lo que necesitas saber sobre las palabras clave en Golang.

Tipos de datos en Golang

Tipos de datos en Golang

El tipo de datos especifica el tipo de datos que puede contener una variable Go válida. En el lenguaje Go, los tipos se dividen en cuatro categorías como sigue:

Argumentos de función en Golang

Argumentos de función en Golang

Go admite dos formas principales de pasar argumentos: pasar por valor y pasar por referencia. Go utiliza el paso por valor de manera predeterminada.

Función que devuelve múltiples valores en Golang

Función que devuelve múltiples valores en Golang

En el lenguaje Go, se permite devolver múltiples valores de una función, utilizando la declaración de retorno. En otras palabras, en una función, una declaración de retorno puede devolver múltiples valores.

Sentencia Switch en Go

Sentencia Switch en Go

Golang, como la mayoría de los otros lenguajes de programación, tiene una declaración switch. Aquí se explica cómo utilizar la declaración switch en Golang.

Estructuras y campos anónimos en Golang

Estructuras y campos anónimos en Golang

Las estructuras anónimas en Golang son estructuras temporales sin nombre que se utilizan para fines únicos, mientras que los campos anónimos permiten la incorporación de campos sin nombre.

Cómo usar Runas en Golang

Cómo usar Runas en Golang

¿Qué son las Runas en Golang? ¿Cómo usar Runas en Golang? El artículo te dirá la respuesta.

Cómo usar operadores en Golang

Cómo usar operadores en Golang

Los operadores nos permiten realizar diferentes tipos de operaciones sobre los operandos. En el lenguaje Go, los operadores se pueden clasificar según sus diferentes funciones.

Identificador nulo en Golang

Identificador nulo en Golang

_(guión bajo) en Golang se llama Identificador en blanco. El identificador es un nombre definido por el usuario de los componentes del programa que se utiliza con fines de identificación.

Cómo crear un programa básico en Golang

Cómo crear un programa básico en Golang

¡Hola Mundo! es el primer programa básico en cualquier lenguaje de programación. Puedes escribir este primer programa en Golang siguiendo los pasos a continuación.

Cómo instalar Go en Windows

Cómo instalar Go en Windows

Golang se puede instalar fácilmente en Windows. A continuación se muestra una guía detallada paso a paso para instalar Golang en Windows.

Diferencia entre un televisor normal y un Smart TV

Diferencia entre un televisor normal y un Smart TV

Los televisores inteligentes realmente han conquistado el mundo. Con tantas funciones excelentes y conectividad a Internet, la tecnología ha cambiado la forma en que vemos televisión.

¿Por qué el congelador no tiene luz pero el refrigerador sí?

¿Por qué el congelador no tiene luz pero el refrigerador sí?

Los refrigeradores son electrodomésticos familiares en los hogares. Los refrigeradores suelen tener 2 compartimentos, el compartimento frío es espacioso y tiene una luz que se enciende automáticamente cada vez que el usuario lo abre, mientras que el compartimento congelador es estrecho y no tiene luz.

2 maneras de solucionar la congestión de la red que ralentiza el Wi-Fi

2 maneras de solucionar la congestión de la red que ralentiza el Wi-Fi

Las redes Wi-Fi se ven afectadas por muchos factores más allá de los enrutadores, el ancho de banda y las interferencias, pero existen algunas formas inteligentes de mejorar su red.

Cómo degradar de iOS 17 a iOS 16 sin perder datos usando Tenorshare Reiboot

Cómo degradar de iOS 17 a iOS 16 sin perder datos usando Tenorshare Reiboot

Si quieres volver a iOS 16 estable en tu teléfono, aquí tienes la guía básica para desinstalar iOS 17 y pasar de iOS 17 a 16.

¿Qué le pasa al cuerpo cuando comes yogur todos los días?

¿Qué le pasa al cuerpo cuando comes yogur todos los días?

El yogur es un alimento maravilloso. ¿Es bueno comer yogur todos los días? Si comes yogur todos los días, ¿cómo cambiará tu cuerpo? ¡Descubrámoslo juntos!

¿Qué tipo de arroz es mejor para la salud?

¿Qué tipo de arroz es mejor para la salud?

Este artículo analiza los tipos de arroz más nutritivos y cómo maximizar los beneficios para la salud del arroz que elija.

Cómo despertarse a tiempo por la mañana

Cómo despertarse a tiempo por la mañana

Establecer un horario de sueño y una rutina para la hora de acostarse, cambiar el despertador y ajustar la dieta son algunas de las medidas que pueden ayudarle a dormir mejor y despertarse a tiempo por la mañana.

Consejos para jugar a Rent Please! Simulación de propietario para principiantes

Consejos para jugar a Rent Please! Simulación de propietario para principiantes

¡Alquiler por favor! Landlord Sim es un juego de simulación para dispositivos móviles iOS y Android. Jugarás como propietario de un complejo de apartamentos y comenzarás a alquilar un apartamento con el objetivo de mejorar el interior de tus apartamentos y prepararlos para los inquilinos.

Últimos códigos de defensa de torres para baños y cómo introducirlos

Últimos códigos de defensa de torres para baños y cómo introducirlos

Obtén el código del juego Bathroom Tower Defense de Roblox y canjéalo por emocionantes recompensas. Te ayudarán a mejorar o desbloquear torres con mayor daño.

Estructura, símbolos y principios de funcionamiento de los transformadores

Estructura, símbolos y principios de funcionamiento de los transformadores

Aprendamos la estructura, los símbolos y los principios de funcionamiento de los transformadores de la forma más precisa.

4 maneras en que la IA está mejorando los televisores inteligentes

4 maneras en que la IA está mejorando los televisores inteligentes

Desde una mejor calidad de imagen y sonido hasta control por voz y más, ¡estas funciones impulsadas por IA hacen que los televisores inteligentes sean mucho mejores!

Por qué ChatGPT es mejor que DeepSeek

Por qué ChatGPT es mejor que DeepSeek

Al principio, la gente tenía grandes esperanzas en DeepSeek. Como chatbot de IA comercializado como un fuerte competidor de ChatGPT, promete capacidades y experiencias de chat inteligentes.

Conoce Fireflies.ai: La secretaria con IA gratuita que te ahorra horas de trabajo

Conoce Fireflies.ai: La secretaria con IA gratuita que te ahorra horas de trabajo

Es fácil pasar por alto detalles importantes cuando se anotan otros elementos esenciales, y tratar de tomar notas mientras se chatea puede ser una distracción. Fireflies.ai es la solución.

Cómo criar Ajolote en Minecraft, domesticar Salamandra en Minecraft

Cómo criar Ajolote en Minecraft, domesticar Salamandra en Minecraft

Axolot de Minecraft será un gran asistente para los jugadores cuando trabajen bajo el agua si saben cómo usarlos.

Configuración del juego para PC A Quiet Place: The Road Ahead

Configuración del juego para PC A Quiet Place: The Road Ahead

La configuración de A Quiet Place: The Road Ahead tiene una calificación bastante alta, por lo que deberás tener en cuenta la configuración antes de decidir descargarla.