Gevallen die u moet kennen bij het gebruik van selectie-instructies in Golang

In de taal Go is de select-instructie hetzelfde als de switch-instructie , maar in de select-instructie verwijst de case-instructie naar communicatie, dat wil zeggen de verzend- of ontvangstbewerking op een kanaal.

Gevallen die u moet kennen bij het gebruik van selectie-instructies in Golang

Syntaxis:

select{

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

In dit artikel leggen we uit hoe u een deadlock kunt voorkomen door standaardcase te gebruiken. Maar laten we eerst eens kijken wat het deadlock-geval is bij het gebruik van de Golang select-opdracht ?

Dingen die u moet weten over een deadlock-zaak in Golang

Deadlock: wanneer u gegevens van een kanaal probeert te lezen of schrijven, maar het kanaal leeg is. Hierdoor wordt de huidige uitvoering van goroutine geblokkeerd en wordt de controle aan andere goroutines doorgegeven. Als er echter geen andere goroutine beschikbaar is of als andere goroutines in rust zijn vanwege deze situatie, zal het programma vastlopen. Dit verschijnsel wordt deadlock genoemd. Zoals in het onderstaande voorbeeld te zien is:

Bijvoorbeeld:

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

Resultaat:

fatal error: all goroutines are asleep - deadlock!

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

Om deze situatie te voorkomen, gebruiken we de standaardcase in de select-instructie. Met andere woorden: wanneer er een deadlock in het programma ontstaat, wordt de standaardoptie select uitgevoerd om een ​​deadlock te voorkomen. Net als in het onderstaande voorbeeld gebruiken we de standaardcase in de select-instructie om een ​​deadlock te voorkomen.

Bijvoorbeeld:

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

Resultaat:

!.. Default case..!

U mag ook de standaardcase gebruiken als de select- instructie alleen een nil- kanaal heeft . Zoals in het onderstaande voorbeeld wordt getoond, is kanaal c nul. Als de standaardoptie hier niet beschikbaar is, wordt de standaardoptie uitgevoerd. Het programma blokkeert dan voor altijd en er ontstaat een deadlock.

Bijvoorbeeld:

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

Resultaat:

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

Leave a Comment

Benoemde retourparameters in Golang

Benoemde retourparameters in Golang

In Golang worden benoemde retourparameters vaak benoemde parameters genoemd. Met Golang kunt u de retourparameters of resultaten van functies benoemen in de functiehandtekening of -definitie.

Trefwoorden in Go

Trefwoorden in Go

Trefwoord - Trefwoorden zijn woorden in een taal die worden gebruikt voor een intern proces of die een vooraf gedefinieerde actie vertegenwoordigen. Dit zijn de dingen die u moet weten over trefwoorden in Golang.

Gegevenstypen in Golang

Gegevenstypen in Golang

Het gegevenstype specificeert het type gegevens dat een geldige Go-variabele kan bevatten. In de Go-taal worden typen als volgt in vier categorieën verdeeld:

Functieargumenten in Golang

Functieargumenten in Golang

Go ondersteunt twee hoofdmanieren om argumenten door te geven: doorgeven per waarde en doorgeven per referentie. Go gebruikt standaard de waarde 'pass by'.

Functie die meerdere waarden retourneert in Golang

Functie die meerdere waarden retourneert in Golang

In de Go-taal kunt u meerdere waarden uit een functie retourneren met behulp van de return-instructie. Met andere woorden: in een functie kan een return-instructie meerdere waarden retourneren.

Switch-instructie in Go

Switch-instructie in Go

Golang heeft, net als de meeste andere programmeertalen, een switch-statement. Hier leest u hoe u de switch-instructie in Golang gebruikt.

Anonieme structuren en velden in Golang

Anonieme structuren en velden in Golang

Anonieme structuren in Golang zijn tijdelijke structuren zonder namen die voor eenmalige doeleinden worden gebruikt, terwijl anonieme velden het insluiten van naamloze velden mogelijk maken.

Hoe Rune te gebruiken in Golang

Hoe Rune te gebruiken in Golang

Wat zijn Runen in Golang? Hoe gebruik je Rune in Golang? Het artikel geeft u het antwoord.

Operatoren gebruiken in Golang

Operatoren gebruiken in Golang

Met operatoren kunnen we verschillende soorten bewerkingen op operanden uitvoeren. In de Go-taal kunnen operatoren worden geclassificeerd op basis van hun verschillende functies.

Ongeldige identificatie in Golang

Ongeldige identificatie in Golang

_(underscore) wordt in Golang een lege identifier genoemd. Identifier is een door de gebruiker gedefinieerde naam van programmacomponenten die worden gebruikt voor identificatiedoeleinden.

Hoe maak je een basisprogramma in Golang

Hoe maak je een basisprogramma in Golang

Hallo wereld! is het eerste basisprogramma in elke programmeertaal. U kunt dit eerste programma in Golang schrijven door de onderstaande stappen te volgen.

Go installeren op Windows

Go installeren op Windows

Golang kan eenvoudig op Windows worden geïnstalleerd. Hieronder vindt u een gedetailleerde stapsgewijze handleiding voor het installeren van Golang op Windows.

Methoden met dezelfde naam in Golang

Methoden met dezelfde naam in Golang

Met Golang kunt u twee of meer methoden met dezelfde naam in hetzelfde pakket maken, maar de ontvangers van deze methoden moeten van verschillende typen zijn.

Functies in Go

Functies in Go

Functies zijn in Go blokken code die specifieke taken uitvoeren. Deze kunnen in het programma opnieuw worden gebruikt om geheugen te besparen, de leesbaarheid te verbeteren en tijd te besparen.

Hoe je 1 maand Discord Nitro gratis krijgt met Opera GX

Hoe je 1 maand Discord Nitro gratis krijgt met Opera GX

Opera GX, de op gaming gerichte webbrowser, is een interessante samenwerking aangegaan met Discord. Gebruikers krijgen nu een gratis proefperiode van een maand voor Discord Nitro.

Hoe u snel een Windows 10-computerscherm kunt opnemen

Hoe u snel een Windows 10-computerscherm kunt opnemen

Er zijn momenteel veel programma's beschikbaar waarmee u uw computerscherm kunt opnemen, die Windows 10 ondersteunen. Hiermee kunt u eenvoudig uw computerscherm opnemen, vooral als u gamet.

Hoe je reacties uitschakelt tijdens livestreaming op Facebook

Hoe je reacties uitschakelt tijdens livestreaming op Facebook

Wanneer u via Facebook live kijkt, worden de reacties automatisch op het online videoscherm weergegeven. Dan weten de kijkers ook welke opmerkingen andere mensen hebben gemaakt.

15 dingen die je met ChatGPT kunt doen

15 dingen die je met ChatGPT kunt doen

Sinds de lancering in november 2022 heeft ChatGPT veel aandacht gekregen vanwege de vele toepassingsmogelijkheden. Om u te helpen het maximale uit deze tool te halen, vindt u hier 15 manieren waarop u ChatGPT kunt gebruiken.

Tips voor het vinden van goedkope vluchten op Gemini

Tips voor het vinden van goedkope vluchten op Gemini

De widgets op Gemini helpen deze AI-assistent om gebruikers op meer vlakken te bereiken, bijvoorbeeld door goedkope vliegtickets te vinden via de Google Flights-widget.

Benoemde retourparameters in Golang

Benoemde retourparameters in Golang

In Golang worden benoemde retourparameters vaak benoemde parameters genoemd. Met Golang kunt u de retourparameters of resultaten van functies benoemen in de functiehandtekening of -definitie.

Instructies voor het instellen van een chatachtergrond op WhatsApp

Instructies voor het instellen van een chatachtergrond op WhatsApp

WhatsApp heeft een functie om de chatachtergrond te veranderen, waarmee gebruikers chatthema's op WhatsApp kunnen instellen. Gebruikers kunnen kiezen uit 30 verschillende achtergronden voor hun chats, of hun eigen afbeeldingen gebruiken als chatachtergrond op WhatsApp.

Wat is een FLV-bestand? Hoe open ik FLV-bestanden op mijn computer?

Wat is een FLV-bestand? Hoe open ik FLV-bestanden op mijn computer?

Vaak download je video's van internet naar je computer om ze offline te bekijken. Vaak zie je dan FLV-bestanden. Vindt u het lastig om ze te openen? Vandaag geven we u in het onderstaande artikel informatie over FLV-videobestanden.

Hoe bekijk je het nieuwsarchief op je Facebook-telefoon of computer?

Hoe bekijk je het nieuwsarchief op je Facebook-telefoon of computer?

Om geplaatste Facebook-nieuwtjes te kunnen bekijken, moet u het nieuwsarchief op Facebook activeren. Nadat u de archiefmodus hebt ingeschakeld, worden alle Facebookberichten in het archief opgeslagen, zodat u ze later weer kunt bekijken.

Laatste MU Luc Dia VNG-code en hoe u de code kunt inwisselen

Laatste MU Luc Dia VNG-code en hoe u de code kunt inwisselen

Je kunt MU Luc Dia VNG-spelcodes inwisselen voor Zen en andere valuta.

10 onmisbare apps voor boekenliefhebbers

10 onmisbare apps voor boekenliefhebbers

Ook al heb je geen boek bij je, dat betekent niet dat je moet stoppen met lezen. Het enige dat u nodig hebt, is uw telefoon om socialemedia-apps voor boekenliefhebbers uit te proberen en het volgende boek te vinden dat u wilt lezen.

Leer meer over Spotify Connect: de Spotify-functie die gebruikers dwong YouTube Music te verlaten

Leer meer over Spotify Connect: de Spotify-functie die gebruikers dwong YouTube Music te verlaten

De mogelijkheid om de muziek op het ene apparaat via een ander apparaat te bedienen, is een functie die onderschat wordt. YouTube Music heeft deze functie niet, waardoor mensen gedwongen zijn om Spotify te gebruiken.

Hoe je een sneeuwbal laat ontploffen in Minecraft Bedrock & Java Edition

Hoe je een sneeuwbal laat ontploffen in Minecraft Bedrock & Java Edition

Met Minecraft-opdrachten kunnen spelers allerlei interessante effecten creëren. Een leuke optie is om sneeuwballen te laten ontploffen. Hier lees je hoe je exploderende sneeuwballen maakt in Minecraft.

Heeft uw computer een NPU? Zo controleer je het

Heeft uw computer een NPU? Zo controleer je het

In Windows 11 kunt u op 3 eenvoudige manieren snel controleren of uw computer een NPU (Neural Processing Unit) heeft.

Is de slaapstand slecht voor je pc?

Is de slaapstand slecht voor je pc?

De sluimerstand is ontstaan ​​uit de behoefte om de computer 24/7 aan te laten staan, zonder dat de accu leeg zou raken of dat het systeem last zou krijgen van stroomuitval. Dit in tegenstelling tot de slaapstand.