Случаи, которые следует знать при использовании операторов выбора в Golang

В языке Go оператор select похож на оператор switch , но в операторе select оператор case относится к коммуникации, т. е. операции отправки или получения по каналу.

Случаи, которые следует знать при использовании операторов выбора в Golang

Синтаксис:

select{

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

В этой статье мы узнаем, как использовать регистр по умолчанию, чтобы избежать взаимоблокировки. Но сначала давайте выясним, что такое случай взаимоблокировки при использовании команды select в Golang ?

Что нужно знать о случаях взаимоблокировки в Golang

Взаимная блокировка: когда вы пытаетесь прочитать или записать данные из канала, но канал пуст. Таким образом, он блокирует текущее выполнение горутины и передает управление другим горутинам, но если другие горутины недоступны или другие горутины отдыхают из-за этой ситуации, программа аварийно завершит работу. Это явление называется тупиком. Как показано в примере ниже:

Например:

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

Результат:

fatal error: all goroutines are asleep - deadlock!

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

Чтобы избежать этой ситуации, мы используем регистр по умолчанию в операторе select. Другими словами, когда в программе возникает взаимоблокировка, выполняется вариант оператора select по умолчанию, чтобы избежать взаимоблокировки. Как и в примере ниже, мы используем регистр по умолчанию в операторе select, чтобы избежать взаимоблокировки.

Например:

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

Результат:

!.. Default case..!

Вы также можете использовать случай по умолчанию, когда оператор select имеет только нулевой канал . Как показано в примере ниже, канал c равен нулю, поэтому выполняется вариант по умолчанию, если вариант по умолчанию здесь недоступен, то программа блокируется навсегда и возникает взаимоблокировка.

Например:

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

Результат:

Default case..!

Leave a Comment

Как использовать константы в Golang

Как использовать константы в Golang

Что такое Constant или Const в Golang? Вот что вам нужно знать об использовании констант в Go.

Нестабильные функции в Golang

Нестабильные функции в Golang

Вариативные функции в Go позволяют передавать функции переменное количество аргументов. Вот все, что вам нужно знать о volatile-функциях в Golang.

Именованные возвращаемые параметры в Golang

Именованные возвращаемые параметры в Golang

В Golang именованные возвращаемые параметры часто называются именованными параметрами. Golang позволяет именовать возвращаемые параметры или результаты функций в сигнатуре или определении функции.

Ключевые слова в Go

Ключевые слова в Go

Ключевое слово. Ключевые слова — это слова в языке, которые используются для обозначения какого-либо внутреннего процесса или представляют собой какое-либо предопределенное действие. Вот что вам нужно знать о ключевых словах в Golang.

Типы данных в Golang

Типы данных в Golang

Тип данных определяет тип данных, которые может содержать допустимая переменная Go. В языке Go типы делятся на четыре категории следующим образом:

Аргументы функций в Golang

Аргументы функций в Golang

Go поддерживает два основных способа передачи аргументов: передача по значению и передача по ссылке. Go по умолчанию использует передачу по значению.

Функция, возвращающая несколько значений в Golang

Функция, возвращающая несколько значений в Golang

В языке Go разрешено возвращать несколько значений из функции с помощью оператора return. Другими словами, в функции оператор return может возвращать несколько значений.

Оператор Switch в Go

Оператор Switch в Go

В Golang, как и в большинстве других языков программирования, есть оператор switch. Вот как использовать оператор switch в Golang.

Анонимные структуры и поля в Golang

Анонимные структуры и поля в Golang

Анонимные структуры в Golang — это временные структуры без имен, используемые для одноразовых целей, в то время как анонимные поля допускают встраивание неименованных полей.

Как использовать Руну в Golang

Как использовать Руну в Golang

Что такое руны в языке Голанг? Как использовать руну в Golang? Статья даст вам ответ.

Как использовать операторы в Golang

Как использовать операторы в Golang

Операторы позволяют нам выполнять различные типы операций над операндами. В языке Go операторы можно классифицировать на основе их различных функций.

Идентификатор Void в Golang

Идентификатор Void в Golang

_(подчеркивание) в Golang называется пустым идентификатором. Идентификатор — определяемое пользователем имя компонентов программы, используемое для целей идентификации.

Как создать базовую программу на Golang

Как создать базовую программу на Golang

Привет, мир! это первая базовая программа на любом языке программирования. Вы можете написать эту первую программу на Golang, следуя инструкциям ниже.

Как установить Go на Windows

Как установить Go на Windows

Golang можно легко установить на Windows. Ниже приведено подробное пошаговое руководство по установке Golang на Windows.

Как исправить ошибку в Microsoft Teams: пошаговое руководство по работе с Teams

Как исправить ошибку в Microsoft Teams: пошаговое руководство по работе с Teams

Возникли проблемы с ошибкой в ​​руководстве по использованию Microsoft Teams? Узнайте о проверенных пошаговых способах её быстрого устранения. Очистка кэша, обновление и многое другое для беспроблемного начала работы. Работает на последних версиях!

Как исправить ошибки воспроизведения мультимедиа в Microsoft Teams в 2026 году

Как исправить ошибки воспроизведения мультимедиа в Microsoft Teams в 2026 году

Устали от ошибок воспроизведения мультимедиа в Microsoft Teams, которые портят ваши встречи в 2026 году? Следуйте нашему пошаговому руководству от экспертов, чтобы быстро устранить неполадки со звуком, видео и обменом файлами — никаких технических навыков не требуется. Вас ждет бесперебойное сотрудничество!

Устранение неполадок с настройками прокси-сервера Microsoft Teams.

Устранение неполадок с настройками прокси-сервера Microsoft Teams.

Возникли проблемы с ошибкой прокси-сервера Microsoft Teams? Ознакомьтесь с проверенными шагами по устранению неполадок с настройками прокси-сервера Microsoft Teams. Очистите кэш, настройте параметры прокси-сервера и вернитесь к бесперебойным звонкам за считанные минуты с помощью нашего руководства от экспертов.

Как исправить ошибки синхронизации в Microsoft Teams Task Management

Как исправить ошибки синхронизации в Microsoft Teams Task Management

Устали от ошибок синхронизации задач в Microsoft Teams, которые мешают вашей работе? Следуйте нашим пошаговым инструкциям, чтобы восстановить бесперебойную синхронизацию задач между Teams, Planner и To Do. Быстрые решения для мгновенного облегчения!

Где находятся ключи реестра Microsoft Teams в Windows 11?

Где находятся ключи реестра Microsoft Teams в Windows 11?

Найдите точное расположение ключей реестра Microsoft Teams в Windows 11. Пошаговое руководство по поиску, доступу и безопасному изменению этих ключей для оптимальной производительности и устранения неполадок. Незаменимо для ИТ-специалистов и энтузиастов Teams.

Как очистить кэш Microsoft Teams для устранения проблем с производительностью

Как очистить кэш Microsoft Teams для устранения проблем с производительностью

Проблемы с медленной работой Microsoft Teams? Узнайте, как пошагово очистить кэш Microsoft Teams, чтобы устранить проблемы с производительностью, задержки, сбои и повысить скорость работы на Windows, Mac, в веб-версии и на мобильных устройствах. Быстрые и эффективные решения!

Как исправить ошибку Вкладка Wiki в Microsoft Teams не загружается

Как исправить ошибку Вкладка Wiki в Microsoft Teams не загружается

Возникла проблема с загрузкой вкладки Wiki в Microsoft Teams? Узнайте о проверенных пошаговых решениях, которые помогут быстро устранить проблему, восстановить вкладки Wiki и без лишних хлопот повысить производительность команды.

Где находится Microsoft Teams в Outlook? Как найти отсутствующий значок.

Где находится Microsoft Teams в Outlook? Как найти отсутствующий значок.

Раздражает отсутствие значка Microsoft Teams в Outlook? Узнайте, где именно его найти, почему он исчезает, и проверенные шаги по его восстановлению для беспроблемных встреч. Обновлено для последних версий!

Почему я не вижу комнаты для обсуждений в своей встрече Teams?

Почему я не вижу комнаты для обсуждений в своей встрече Teams?

Разочарованы отсутствием комнат для обсуждений в вашей встрече Teams? Узнайте о главных причинах, по которым вы не видите комнаты для обсуждений в Teams, и следуйте нашим пошаговым инструкциям, чтобы они заработали за считанные минуты. Идеально подходит как для организаторов, так и для участников!

Как исправить ошибку 1200 в Microsoft Teams на телефоне (iOS/Android)

Как исправить ошибку 1200 в Microsoft Teams на телефоне (iOS/Android)

Устали от ошибки Microsoft Teams 1200, которая прерывает ваши телефонные звонки? Узнайте о быстрых пошаговых решениях для iOS и Android, чтобы быстро восстановить бесперебойную командную работу — никаких технических навыков не требуется!

Как отключить Microsoft Teams при запуске системы для повышения производительности ПК

Как отключить Microsoft Teams при запуске системы для повышения производительности ПК

Откройте для себя простые пошаговые инструкции по отключению Microsoft Teams при запуске системы и повышению производительности ПК. Более быстрая загрузка, меньшее потребление ресурсов — идеально для пользователей Windows, стремящихся к плавной работе.

Как скачать Microsoft Teams для Mac и MacBook Air/Pro

Как скачать Microsoft Teams для Mac и MacBook Air/Pro

Узнайте самый простой способ загрузить Microsoft Teams для Mac, MacBook Air и MacBook Pro. Пошаговые инструкции, системные требования и советы по устранению неполадок для беспроблемной установки последней версии. Начните прямо сейчас!

Где найти папку установки Microsoft Teams на вашем компьютере

Где найти папку установки Microsoft Teams на вашем компьютере

Не можете найти папку установки Microsoft Teams на своем компьютере? Это пошаговое руководство покажет точные пути для новых и классических версий Teams, а также для установки на одного пользователя и на весь компьютер. Сэкономьте время на устранении неполадок!

Как присоединиться к собранию Microsoft Teams с помощью идентификатора и пароля

Как присоединиться к собранию Microsoft Teams с помощью идентификатора и пароля

Научитесь легко присоединяться к собраниям Microsoft Teams с помощью идентификатора и пароля на компьютере, мобильном устройстве или в веб-версии. Пошаговые инструкции со скриншотами для быстрого доступа — приглашение не требуется!

Как эффективно использовать фоновые изображения в Microsoft Teams

Как эффективно использовать фоновые изображения в Microsoft Teams

Узнайте, как эффективно использовать фоновые изображения Microsoft Teams с помощью пошаговых инструкций, советов по загрузке и лучших практик, чтобы сделать ваши видеозвонки профессиональными и увлекательными. Поднимите свой уровень удаленной работы на новый уровень уже сегодня!