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

Schlüsselwörter in Go

Schlüsselwörter in Go

Schlüsselwörter – Schlüsselwörter sind Wörter in einer Sprache, die für interne Prozesse verwendet werden oder vordefinierte Aktionen darstellen. Hier erfahren Sie, was Sie über Schlüsselwörter in Golang wissen müssen.

Datentypen in Golang

Datentypen in Golang

Datentypen geben an, welche Art von Daten eine gültige Go-Variable enthalten kann. In der Sprache Go werden Typen in vier Kategorien unterteilt:

Funktionsargumente in Golang

Funktionsargumente in Golang

Go unterstützt zwei Hauptmethoden zur Argumentübergabe: Übergabe per Wert und Übergabe per Referenz. Go verwendet standardmäßig die Übergabe per Wert.

Funktion, die mehrere Werte in Golang zurückgibt

Funktion, die mehrere Werte in Golang zurückgibt

In der Sprache Go können Sie mithilfe der return-Anweisung mehrere Werte aus einer Funktion zurückgeben. Mit anderen Worten: In einer Funktion kann eine return-Anweisung mehrere Werte zurückgeben.

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.

Wie Musik das Gehirn stimuliert

Wie Musik das Gehirn stimuliert

Die meisten Menschen wissen, dass Musik nicht nur der Unterhaltung dient, sondern auch viele positive Auswirkungen hat. Hier sind einige Beispiele dafür, wie Musik unsere Gehirnentwicklung fördert.

Die am häufigsten fehlenden Nährstoffe in der Ernährung

Die am häufigsten fehlenden Nährstoffe in der Ernährung

Die Ernährung ist wichtig für unsere Gesundheit. Doch den meisten unserer Mahlzeiten fehlen diese sechs wichtigen Nährstoffe.

So zeigen Sie CPU-Informationen für Chromebooks an

So zeigen Sie CPU-Informationen für Chromebooks an

In diesem Artikel erfahren Sie, wie Sie CPU-Informationen anzeigen und die CPU-Geschwindigkeit direkt auf Ihrem Chromebook überprüfen.

8 coole Dinge, die Sie mit einem alten Android-Tablet machen können

8 coole Dinge, die Sie mit einem alten Android-Tablet machen können

Wenn Sie Ihr altes Tablet weder verkaufen noch verschenken möchten, können Sie es auf 5 Arten nutzen: als hochwertigen Bilderrahmen, Musikplayer, E-Book- und Zeitschriftenleser, Haushaltshilfe und als Zweitbildschirm.

Alles, was Sie brauchen, um Ihren Laptop durch ein Telefon zu ersetzen

Alles, was Sie brauchen, um Ihren Laptop durch ein Telefon zu ersetzen

Können Sie Ihren Laptop wirklich durch Ihr Telefon ersetzen? Ja, aber Sie benötigen das richtige Zubehör, um Ihr Telefon in einen Laptop zu verwandeln.

ChatGPT wird bald alles sehen können, was auf Ihrem Bildschirm passiert

ChatGPT wird bald alles sehen können, was auf Ihrem Bildschirm passiert

Ein wichtiger Punkt im gesamten Event-Video war, dass die kommende ChatGPT-App-Funktion vorgeführt wurde, ohne dass jedoch wirkliche Details bekannt gegeben wurden. ChatGPT bietet die Möglichkeit, alles zu sehen, was auf dem Bildschirm des Benutzergeräts passiert.

KI lernt, Menschen zu täuschen, obwohl sie darauf trainiert ist, ehrlich zu sein

KI lernt, Menschen zu täuschen, obwohl sie darauf trainiert ist, ehrlich zu sein

Viele Spitzen-KIs lernen, obwohl sie darauf trainiert sind, ehrlich zu sein, durch Training, zu täuschen und Benutzer systematisch zu falschen Überzeugungen zu verleiten, wie eine neue Studie zeigt.

So ändern Sie Fragen auf ChatGPT

So ändern Sie Fragen auf ChatGPT

ChatGPT verfügt jetzt über eine Option zum Ändern von Fragen, sodass Benutzer die Frage oder den Inhalt bearbeiten können, den sie mit ChatGPT austauschen.

So erkennen Sie gefälschte QR-Codes und schützen Ihre Daten

So erkennen Sie gefälschte QR-Codes und schützen Ihre Daten

QR-Codes wirken ziemlich harmlos, bis man einen gefälschten Code scannt und etwas Böses auf einen losgeht. Um Ihr Telefon und Ihre Daten zu schützen, gibt es einige Möglichkeiten, einen gefälschten QR-Code zu erkennen.

Unterschied zwischen WENN- und Umschaltfunktionen in Excel

Unterschied zwischen WENN- und Umschaltfunktionen in Excel

Die IF-Anweisung ist eine gängige logische Funktion in Excel. Die SWITCH-Anweisung ist weniger bekannt, kann aber in manchen Situationen anstelle der IF-Anweisung verwendet werden.

So fügen Sie mit Adobe Camera Raw einen Spotlight-Effekt hinter Ihr Motiv ein

So fügen Sie mit Adobe Camera Raw einen Spotlight-Effekt hinter Ihr Motiv ein

Ein Scheinwerfer hinter Ihrem Motiv ist eine hervorragende Möglichkeit, Ihr Motiv vom Hintergrund abzuheben. Ein Scheinwerfer kann Ihren Porträts Tiefe verleihen.

So verwenden Sie Apple Invites zum Erstellen von Ereignissen

So verwenden Sie Apple Invites zum Erstellen von Ereignissen

Apple hat eine eigene Event-Management-App namens „Invites“ veröffentlicht. Mit dieser App können Sie Events erstellen, Einladungen versenden und Zusagen verwalten.

Cheat Heroes 3, Heroes 3 Codes alle Versionen

Cheat Heroes 3, Heroes 3 Codes alle Versionen

Hier sind alle Heroes 3-Codes, Heroes 3-Cheats für alle Versionen wie Heroes 3 WoG-Cheat, Heroes 3 SoD, Heroes 3 of Might and Magic

Neuester Tay Du VNG-Code und wie man den Code eingibt

Neuester Tay Du VNG-Code und wie man den Code eingibt

Der neueste Tay Du VNG-Code bietet Spielern eine Reihe attraktiver Belohnungen wie Elixiere, Silber, Goldbarren, Belohnungstruhen und eine Reihe anderer Gegenstände, die neuen Spielern das Freischalten allgemeiner Runden erleichtern.

Mark Zuckerberg hasst Apple und muss trotzdem ein Macbook verwenden, aber das ist sehr seltsam

Mark Zuckerberg hasst Apple und muss trotzdem ein Macbook verwenden, aber das ist sehr seltsam

Mark Zuckerberg postete kürzlich ein Foto von sich, auf dem er an einem Laptop arbeitet. Es war ein Laptop (angeblich ein MacBook), aber das Logo mit dem angebissenen Apfel war nirgends zu sehen.