Zu kennende Fälle bei der Verwendung von Auswahlanweisungen in Golang

In der Sprache Go ist die Select-Anweisung wie die Switch-Anweisung , aber in der Select-Anweisung bezieht sich die Case-Anweisung auf die Kommunikation, d. h. auf den Sende- oder Empfangsvorgang auf dem Kanal.

Zu kennende Fälle bei der Verwendung von Auswahlanweisungen in Golang

Syntax:

select{

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

In diesem Artikel erfahren Sie, wie Sie den Standardfall verwenden, um Deadlocks zu vermeiden. Zunächst erfahren Sie jedoch, was ein Deadlock-Fall bei der Verwendung des Select-Befehls in Golang ist.

Wissenswertes zum Deadlock-Fall in Golang

Deadlock: Wenn Sie versuchen, Daten aus einem Kanal zu lesen oder zu schreiben, dieser aber nicht verfügbar ist, blockiert dies die aktuelle Ausführung der Goroutine und überträgt die Steuerung an andere Goroutinen. Ist jedoch keine andere Goroutine verfügbar oder befinden sich andere aufgrund dieser Situation im Leerlauf, stürzt das Programm ab. Dieses Phänomen wird als Deadlock bezeichnet. Wie im folgenden Beispiel gezeigt:

Zum Beispiel:

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

Ergebnis:

fatal error: all goroutines are asleep - deadlock!

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

Um diese Situation zu vermeiden, verwenden wir den Standardfall in der Select-Anweisung. Anders ausgedrückt: Wenn im Programm ein Deadlock auftritt, wird der Standardfall der Select-Anweisung ausgeführt, um einen Deadlock zu vermeiden. Wie im folgenden Beispiel verwenden wir den Standardfall in der Select-Anweisung, um einen Deadlock zu vermeiden.

Zum Beispiel:

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

Ergebnis:

!.. Default case..!

Sie können den Standardfall auch verwenden, wenn die Select -Anweisung nur einen Nullkanal hat . Wie im folgenden Beispiel gezeigt, ist Kanal c Null, daher wird der Standardfall ausgeführt. Ist der Standardfall hier nicht verfügbar, blockiert das Programm dauerhaft und es kommt zu einem Deadlock.

Zum Beispiel:

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

Ergebnis:

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

Leave a Comment

Switch-Anweisung in Go

Switch-Anweisung in Go

Golang verfügt wie die meisten anderen Programmiersprachen über Switch-Anweisungen. Hier erfahren Sie, wie Sie die Switch-Anweisung in Golang verwenden.

Anonyme Strukturen und Felder in Golang

Anonyme Strukturen und Felder in Golang

Anonyme Strukturen in Golang sind temporäre Strukturen ohne Namen, die für einmalige Zwecke verwendet werden, während anonyme Felder das Einbetten unbenannter Felder ermöglichen.

So verwenden Sie Rune in Golang

So verwenden Sie Rune in Golang

Was ist Rune in Golang? Wie verwendet man Rune in Golang? Dieser Artikel gibt Ihnen die Antwort.

So verwenden Sie Operatoren in Golang

So verwenden Sie Operatoren in Golang

Operatoren ermöglichen es uns, verschiedene Arten von Operationen an Operanden durchzuführen. In der Programmiersprache Go können Operatoren anhand ihrer unterschiedlichen Funktionen klassifiziert werden.

Ungültiger Bezeichner in Golang

Ungültiger Bezeichner in Golang

_ (Unterstrich) wird in Golang als leerer Bezeichner bezeichnet. Ein Bezeichner ist ein benutzerdefinierter Name von Programmelementen, der zu Identifikationszwecken verwendet wird.

So erstellen Sie ein Basisprogramm in Golang

So erstellen Sie ein Basisprogramm in Golang

„Hallo Welt!“ ist das erste einfache Programm in einer Programmiersprache. Sie können dieses erste Programm in Golang schreiben, indem Sie die folgenden Schritte befolgen.

So installieren Sie Go unter Windows

So installieren Sie Go unter Windows

Golang lässt sich problemlos unter Windows installieren. Hier finden Sie eine Schritt-für-Schritt-Anleitung zur Installation von Golang unter Windows.

Methoden mit dem gleichen Namen in Golang

Methoden mit dem gleichen Namen in Golang

Golang ermöglicht das Erstellen von zwei oder mehr Methoden mit demselben Namen im selben Paket, aber die Empfänger dieser Methoden müssen unterschiedlichen Typs sein.

Funktionen in Go

Funktionen in Go

In Go sind Funktionen Codeblöcke, die bestimmte Aufgaben ausführen und im gesamten Programm wiederverwendet werden können, um Speicher zu sparen, die Lesbarkeit zu verbessern und Zeit zu sparen.

Variablenumfang in Go

Variablenumfang in Go

Der Gültigkeitsbereich einer Variable in Golang bestimmt, für welchen Teil des Programms die Variable zugänglich ist. In Go haben alle Bezeichner einen lexikalischen Gültigkeitsbereich, der zur Kompilierzeit festgelegt wird.

Kontrollanweisungen in Golang (if, if-else, Nested-if)

Kontrollanweisungen in Golang (if, if-else, Nested-if)

Welche bedingten Anweisungen gibt es in Golang? Wie verwendet man bedingte Anweisungen in der Go-Programmierung? Finden wir es gemeinsam heraus!

Kurzer Variablendeklarationsoperator in Go

Kurzer Variablendeklarationsoperator in Go

Der kurze Variablendeklarationsoperator (:=) in Golang dient zum Erstellen von Variablen mit einem Eigennamen und einem Anfangswert. Hier erfahren Sie alles Wissenswerte über den kurzen Variablendeklarationsoperator in Golang.

Defer-Schlüsselwort in Golang

Defer-Schlüsselwort in Golang

In Go verzögern Defer-Anweisungen die Ausführung einer Funktion oder Methode oder einer anonymen Methode, bis die benachbarten Funktionen zurückkehren.

Methoden in Golang

Methoden in Golang

Methoden in Golang sind wie Funktionen, aber mit einem großen Unterschied: Sie haben ein Empfängerargument, das den Zugriff auf die Eigenschaften des Empfängers ermöglicht.

Weltweit erster KI-Kandidat tritt bei Parlamentswahlen an

Weltweit erster KI-Kandidat tritt bei Parlamentswahlen an

AI Steve ist ein virtueller Kandidat, der von künstlicher Intelligenz (KI) mit dem Prototyp des Geschäftsmanns Steve Endacott erstellt wurde und bei den diesjährigen Parlamentswahlen im Bezirk Brighton Pavillion antreten wird – einer Küstenstadt im Süden Englands.

Wird die manuelle Fotobearbeitung mit dem Fortschritt der KI überflüssig?

Wird die manuelle Fotobearbeitung mit dem Fortschritt der KI überflüssig?

Sie haben wahrscheinlich gehört, dass jeder Aspekt der Kreativität durch KI überflüssig wird. Das stimmt jedoch nicht ganz. Die manuelle Fotobearbeitung wird trotz fortschreitender KI nicht verschwinden, und hier ist der Grund.

Sollten Sie angesichts der Einführung von KI-Tools immer noch Ihre eigene Musik komponieren?

Sollten Sie angesichts der Einführung von KI-Tools immer noch Ihre eigene Musik komponieren?

KI-Musiker versprechen fertige Songs. Lohnt es sich trotzdem, selbst Songs zu produzieren?

So öffnen Sie Ordneroptionen oder Datei-Explorer-Optionen in Windows 10

So öffnen Sie Ordneroptionen oder Datei-Explorer-Optionen in Windows 10

Mit den Datei-Explorer-Optionen (auch Ordneroptionen genannt) können Sie das Verhalten von Dateien und Ordnern sowie die Anzeige von Elementen auf Ihrem Computer ändern. Diese Anleitung zeigt Ihnen verschiedene Möglichkeiten zum Öffnen der Ordner- bzw. Datei-Explorer-Optionen in Windows 10.

Schöne Free Fire-Namen, gute FF-Namen

Schöne Free Fire-Namen, gute FF-Namen

Dies ist ein schöner Free Fire-Name, ein guter Free Fire-Name, mit dem Sie Ihren Charakter oder Ihre Armee benennen können.

Leistungsstärkster Röntgenlaser der Welt

Leistungsstärkster Röntgenlaser der Welt

Die Linac Coherent Light Source (LCLS), der weltweit leistungsstärkste Röntgenlaser im SLAC National Accelerator Laboratory in den USA, wird einer umfassenden Modernisierung unterzogen, bei der die Röntgenenergie der Maschine um das 3.000-fache erhöht wird.

Das teuerste Weltraumteleskop der Welt fängt den Moment ein, in dem zwei Galaxien kurz vor der Kollision stehen

Das teuerste Weltraumteleskop der Welt fängt den Moment ein, in dem zwei Galaxien kurz vor der Kollision stehen

Ein atemberaubendes neues Bild, das vom teuersten Weltraumteleskop der Welt, dem James Webb Space Telescope, zurückgesendet wurde, zeigt den Moment, in dem zwei Galaxien kurz vor der Kollision stehen.

Warum Sie Nachrichten von KI-Chatbots nicht vertrauen sollten

Warum Sie Nachrichten von KI-Chatbots nicht vertrauen sollten

Sie sollten es sich gut überlegen, bevor Sie einen KI-Chatbot für kurze Nachrichtenzusammenfassungen einsetzen. Ein neuer Bericht der BBC zeigt, dass beliebte Chatbots in ihren Zusammenfassungen gravierende Fehler machen.

Was ist Janitor AI? So registrieren und verwenden Sie JanitorAI

Was ist Janitor AI? So registrieren und verwenden Sie JanitorAI

Janitor AI, ein spezieller Chatbot mit KI-Algorithmen, wurde speziell dafür entwickelt, die Kommunikation zu vereinfachen und Ihre Fragen intelligent zu beantworten.

Sammlung der neuesten Ninja Arena-Codes

Sammlung der neuesten Ninja Arena-Codes

Entdecken Sie die neuesten Geschenkcodes für das Spiel Ninja Arena.

Sind die Konsolenspezifikationen wirklich wichtig?

Sind die Konsolenspezifikationen wirklich wichtig?

Sind die Konsolenspezifikationen bei einem Gerät, bei dem Sie außer dem Speicher nichts wirklich aufrüsten können, wirklich wichtig?

Comment résumer des vidéos YouTube avec Gemini

Comment résumer des vidéos YouTube avec Gemini

Google Gemini vous aidera également à résumer des vidéos comme les résumés de vidéos YouTube sur Copilot. Nous activerons le widget YouTube sur Gemini pour utiliser des résumés de contenu vidéo.

Laden Sie die neuen Google Pixel-Hintergrundbilder zur Feier des Hispanic Heritage Month herunter

Laden Sie die neuen Google Pixel-Hintergrundbilder zur Feier des Hispanic Heritage Month herunter

Dies sind Google Pixel-Hintergrundbilder zur Feier des Monats des hispanischen Erbes und sie sind etwas abstrakter als das, was wir von anderen Pixel-Hintergrundbildern gewohnt sind.

So nehmen Sie kurze Videos auf Xiaomi Redmi 10 auf

So nehmen Sie kurze Videos auf Xiaomi Redmi 10 auf

Auf Xiaomi Redmi 10 gibt es eine Funktion zur Aufnahme kurzer Videos, sodass Sie Videos aufnehmen und in Instagram Story oder Facebook Story veröffentlichen können, ohne zusätzliche Bearbeitungsanwendungen verwenden zu müssen.

So aktivieren Sie den Dunkelmodus im Editor unter Windows 10/11

So aktivieren Sie den Dunkelmodus im Editor unter Windows 10/11

Windows verfügt über ein dunkles Design, das die Gesamtästhetik des Systems verbessert. Diese Option ist jedoch eingeschränkt und wirkt sich nicht auf bestimmte Anwendungen aus.