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.
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.
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..!
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 specify what type of data a valid Go variable can hold. In the Go language, types are divided into four categories as follows:
Go supports two main ways to pass arguments: Pass by Value and Pass by Reference. Go uses pass by value by default.
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.
Golang like most other programming languages has switch statement. Here is how to use switch statement 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.
What is Rune in Golang? How to use Rune in Golang? This article will give you the answer.
Operators allow us to perform different types of operations on operands. In Go language, operators can be classified based on their different functions.
_(underscore) in Golang is called Blank Identifier. Identifier is a user-defined name of program elements used for identification purposes.
Hello, World! is the first basic program in any programming language. You can write this first program in Golang by following the steps below.
Golang can be easily installed on Windows. Here is a step-by-step guide to install Golang on Windows.
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.
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.
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.
Cleaning doesn't have to be a chore if you know how to make it fun. Here are some simple ways to make cleaning fun.
Demon Slayer: Infinity Fortress is getting a lot of attention from fans. So what's inside Demon Slayer's Infinity Fortress? Let's find out together!
Background Conversations keep a user's conversation with ChatGPT going while using other apps or when the screen is off. This means ChatGPT can listen or monitor a user's phone usage behavior 24/7.
Recently, some users noticed that Google Gemini has been giving repetitive text, weird characters, and complete nonsense in some responses.
Code Luc Tung Tam Quoc gives new players everything they need to start their journey.
Giang Ho Ngu Tuyet is an MMORPG game based on the five elements of mutual generation and mutual inhibition. With 5 sects: Shaolin, Minh Giao, Vo Dang, Duong Gia, Thien Nhan based on the five elements of Metal, Wood, Water, Fire, Earth.
MIUI 13 wallpapers with many different wallpaper themes from abstract to landscape, combined with vivid and attractive colors for users to choose from.
What do you need to do to resolve the error Your virus & threat protection is managed by your organization?
If your Chromebook won't turn on, you're probably feeling frustrated and hopeless. Luckily, many of the reasons why a Chromebook won't turn on are easy to fix.
Taking a moment to review your app permissions can save you a lot of privacy and security problems later on!
Rengar DTCL season 14 will play the main assassin role, with the ability to jump to the enemy with the lowest health and deal strong physical damage.
Using facial features to detect autism is a growing area of research. While it can aid in diagnosis, much of the research remains unreliable.
Technology brings convenience and unlimited connectivity, changing everyone's lives but also bringing diseases that were never seen before.
If you've purchased apps, subscriptions, music, videos, or other content from one Apple account, you can now transfer purchases to another Apple account when needed.
Skitch application on Android, iOS will edit images including the feature of blurring out personal and confidential information in the image.