Cases to know when using selection statements in Golang

In Go language, select statement is like switch statement , but in select statement, case statement refers to communication, i.e. sending or receiving operation on channel.

Cases to know when using selection statements in Golang

Syntax:

select{

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

In this article, we will learn how to use default case to avoid deadlock. But first, we will learn what is deadlock case when using select command in Golang ?

Things to know about deadlock case in Golang

Deadlock: When you try to read or write data from a channel but the channel is not available. So it blocks the current execution of the goroutine and transfers control to other goroutines, but if no other goroutine is available or other goroutines are idle due to this situation, the program will crash. This phenomenon is called deadlock. As shown in the example below:

For example:

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

Result:

fatal error: all goroutines are asleep - deadlock!

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

To avoid this situation, we use default case in select statement. In other words, when deadlock occurs in the program, default case of select statement is executed to avoid deadlock. As in the example below, we use default case in select statement to avoid deadlock.

For example:

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

Result:

!.. Default case..!

You are also allowed to use the default case when the select statement has only nil channel . As shown in the example below, channel c is nil, so the default case is executed if the default case here is not available, then the program will block forever and deadlock arises.

For example:

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

Result:

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

Leave a Comment

Keywords in Go

Keywords in Go

Keyword - Keywords are words in a language that are used for some internal processes or represent some predefined actions. Here is what you need to know about keywords in Golang.

Data types in Golang

Data types in Golang

Data types specify what type of data a valid Go variable can hold. In the Go language, types are divided into four categories as follows:

Function arguments in Golang

Function arguments in Golang

Go supports two main ways to pass arguments: Pass by Value and Pass by Reference. Go uses pass by value by default.

Function returning multiple values ​​in Golang

Function returning multiple values ​​in Golang

In Go language, you are allowed to return multiple values ​​from a function, using the return statement. In other words, in a function, a return statement can return multiple values.

Switch Statement in Go

Switch Statement in Go

Golang like most other programming languages ​​has switch statement. Here is how to use switch statement in Golang.

Anonymous structures and fields in Golang

Anonymous structures and fields in Golang

Anonymous structs in Golang are temporary structures with no names used for one-time purposes, while anonymous fields allow embedding of unnamed fields.

How to use Rune in Golang

How to use Rune in Golang

What is Rune in Golang? How to use Rune in Golang? This article will give you the answer.

How to use operators in Golang

How to use operators in Golang

Operators allow us to perform different types of operations on operands. In Go language, operators can be classified based on their different functions.

Void identifier in Golang

Void identifier in Golang

_(underscore) in Golang is called Blank Identifier. Identifier is a user-defined name of program elements used for identification purposes.

How to create basic program in Golang

How to create basic program in Golang

Hello, World! is the first basic program in any programming language. You can write this first program in Golang by following the steps below.

How to Install Go on Windows

How to Install Go on Windows

Golang can be easily installed on Windows. Here is a step-by-step guide to install Golang on Windows.

Methods with the same name in Golang

Methods with the same name in Golang

Golang allows creating two or more methods with the same name in the same package, but the receivers of these methods must be of different types.

Functions in Go

Functions in Go

In Go, functions are blocks of code that perform specific tasks, which can be reused throughout the program to save memory, improve readability, and save time.

Variable Scope in Go

Variable Scope in Go

The scope of a variable in Golang determines which part of the program the variable is accessible to. In Go, all identifiers have a lexical scope that is determined at compile time.

Latest Black Goddess Code and how to redeem code

Latest Black Goddess Code and how to redeem code

If you want to receive diamonds, SSR generals, lottery tickets along with many other items, then use the code Black Goddess and redeem the rewards.

Tips for playing Doggo Go through level 2, how to play Doggo Go level 2

Tips for playing Doggo Go through level 2, how to play Doggo Go level 2

Currently Doggo Go is a Mobile Game that only 1% of players in the world can pass level 2.

Apple Watch Ultra 3 could be the first smartwatch to feature satellite connectivity

Apple Watch Ultra 3 could be the first smartwatch to feature satellite connectivity

The Apple Watch Ultra 3 is rumored to feature a unique new communication tool. Bloomberg's Mark Gurman has just revealed some exciting new details about the upcoming smartwatch.

Top Trending Searches in 2024

Top Trending Searches in 2024

To see what the world is curious about this year, check out Google's Year in Search, which just launched on December 11, 2024.

Samsung is bringing a great video-recording feature from Pixel phones to the Galaxy

Samsung is bringing a great video-recording feature from Pixel phones to the Galaxy

The quality of video captured through smartphone cameras in general has improved dramatically over the past few years.

How to treat blisters on feet when walking a lot and wearing tight shoes

How to treat blisters on feet when walking a lot and wearing tight shoes

What to do if your feet get blisters from wearing shoes? This article will guide you on how to fix blisters from wearing shoes.

Multiple choice on general science knowledge

Multiple choice on general science knowledge

Multiple choice questions about life sciences will help you consolidate and expand your knowledge about the world. Let's answer the general knowledge questions below!

How to protect TV, refrigerator, washing machine from mold in wet season

How to protect TV, refrigerator, washing machine from mold in wet season

During the humid season, electronic and refrigeration equipment often malfunction or break down due to high humidity in the air. If you know how to handle humidity in your home, your equipment will avoid the above situations.

Comparing condenser dryers, vented dryers and heat pump dryers, what are the differences, which one should I buy?

Comparing condenser dryers, vented dryers and heat pump dryers, what are the differences, which one should I buy?

There are three common types of dryers on the market today: condenser dryers, vented dryers, and heat pump dryers. To find out which dryer is right for your home, please read our article!

How to Add Recycle Bin to File Explorer

How to Add Recycle Bin to File Explorer

This guide will show you all the steps needed to show the Recycle Bin in File Explorer, regardless of whether you are using Windows 10 or Windows 11.

What to Know About Peaklight: New Stealth Malware Targets Illegal Movie Downloads

What to Know About Peaklight: New Stealth Malware Targets Illegal Movie Downloads

Now, a new attack called Peaklight is going viral and targeting people who download movies illegally.

Bluetooth 6.0 brings new technology that helps Apple improve Find My network

Bluetooth 6.0 brings new technology that helps Apple improve Find My network

The Bluetooth Special Interest Group (Bluetooth SIG) released the specifications for the next generation of the technology, called Bluetooth 6.0, this week.

How to use abstract images to create phone wallpapers

How to use abstract images to create phone wallpapers

You can create your own phone wallpapers from abstract photos. Not only are they beautiful, but the process of creating them is quite fun.

Why is choosing the right charger more difficult than it needs to be?

Why is choosing the right charger more difficult than it needs to be?

Choosing the wrong charger can cause your device to charge slowly or even break. And with so many options and similar products, finding the right one is harder than ever.

Users May Soon See Instagram Comments on Threads

Users May Soon See Instagram Comments on Threads

Instagram could roll out a way to share comments on other Instagram posts to Threads, according to Alessandro Paluzzi, who regularly analyzes Meta's social media apps to spot upcoming features.