
Channels
Channels, buffered vs. unbuffered, close, select, range über Channels, nil Channels
1Was ist ein Channel in Go?
Was ist ein Channel in Go?
Antwort
Ein Channel ist ein Datentyp, der die Kommunikation und Synchronisation zwischen Goroutines ermöglicht. Er fungiert als typisierter Kanal, der das Senden und Empfangen von Werten auf thread-sichere Weise erlaubt. Verwenden Sie Channels, um Daten zwischen Goroutines zu teilen, anstatt den Speicher direkt zu teilen.
2Wie erstellt man einen unbuffered Channel für Integer in Go?
Wie erstellt man einen unbuffered Channel für Integer in Go?
Antwort
Ein unbuffered Channel wird mit make(chan T) ohne Angabe einer Kapazität erstellt. Er blockiert den Sender, bis ein Empfänger bereit ist, und gewährleistet so eine strikte Synchronisation. Verwenden Sie unbuffered Channels für One-to-One-Kommunikation, die eine explizite Synchronisation erfordert.
3Was ist der Hauptunterschied zwischen einem buffered und einem unbuffered Channel?
Was ist der Hauptunterschied zwischen einem buffered und einem unbuffered Channel?
Antwort
Ein unbuffered Channel blockiert den Sender, bis ein Empfänger bereit ist (strikte Synchronisation), während ein buffered Channel Werte bis zu seiner Kapazität speichern kann, bevor er blockiert. Buffered Channels entkoppeln Goroutines und verbessern in manchen Fällen die Leistung, können jedoch Nebenläufigkeitsprobleme verbergen. Verwenden Sie unbuffered für die Synchronisation, buffered für den Durchsatz.
Wie erstellt man einen buffered Channel mit einer Kapazität von 10 Elementen?
Wie sendet man einen Wert in einen Channel?
+19 Interview-Fragen
Weitere Go-Interviewthemen
Go-Grundlagen
Go-Datenstrukturen
Go-Interfaces
Fehlerbehandlung
Goroutines-Grundlagen
Go Modules
HTTP-Server
HTTP-Client
JSON-Kodierung
Database/SQL
context-Paket
Testing
Concurrency-Patterns
Synchronisationsprimitive
Go-Web-Frameworks
REST-API-Design
gRPC
Reflection
Speicherverwaltung
Performance-Optimierung
Generics
Go Design Patterns
Microservices
Sicherheit und Authentifizierung
Docker & Containerization
Kubernetes Basics
Fortgeschrittenes Go
CLI-Entwicklung
Meistere Go für dein nächstes Interview
Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.
Kostenlos starten