
Synchronisatieprimitieven
sync.Mutex, RWMutex, Once, Pool, Map, Cond, atomaire operaties
1Wat is een sync.Mutex in Go?
Wat is een sync.Mutex in Go?
Antwoord
Een sync.Mutex (mutual exclusion lock) is een synchronisatieprimitief dat garandeert dat slechts één goroutine tegelijk toegang heeft tot een kritieke sectie. Het aanroepen van Lock blokkeert totdat de mutex beschikbaar is, en Unlock geeft hem vrij voor andere goroutines. Gebruik het om gelijktijdige toegang tot gedeelde data te beschermen.
2Wat gebeurt er als we Unlock vergeten aan te roepen na Lock op een sync.Mutex?
Wat gebeurt er als we Unlock vergeten aan te roepen na Lock op een sync.Mutex?
Antwoord
Het vergeten van Unlock veroorzaakt een potentiële deadlock omdat andere goroutines onbeperkt zullen wachten om de mutex te verkrijgen. De beste praktijk is om defer te gebruiken om te garanderen dat Unlock wordt aangeroepen, zelfs bij een panic. Koppel Lock en Unlock altijd in dezelfde scope om lock-lekken te voorkomen.
3Wat is het belangrijkste verschil tussen sync.Mutex en sync.RWMutex?
Wat is het belangrijkste verschil tussen sync.Mutex en sync.RWMutex?
Antwoord
De sync.RWMutex staat meerdere gelijktijdige reads toe via RLock maar slechts één exclusieve write via Lock. Dit verbetert de prestaties bij read-intensieve scenario's omdat readers elkaar niet blokkeren. Gebruik RWMutex wanneer reads frequent en writes zeldzaam zijn.
Waarom defer gebruiken met Unlock op een sync.Mutex?
Wanneer geef je de voorkeur aan sync.RWMutex boven sync.Mutex?
+19 gespreksvragen
Andere Go-sollicitatieonderwerpen
Go-basis
Go-datastructuren
Go-interfaces
Foutafhandeling
Goroutines-basis
Channels
Go Modules
HTTP-server
HTTP-client
JSON-codering
Database/SQL
context-pakket
Testing
Concurrency-patronen
Go-webframeworks
REST API-ontwerp
gRPC
Reflection
Geheugenbeheer
Prestatie-optimalisatie
Generics
Go Design Patterns
Microservices
Beveiliging en authenticatie
Docker & Containerization
Kubernetes Basics
Geavanceerd Go
CLI-ontwikkeling
Beheers Go voor je volgende gesprek
Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.
Begin gratis