Go

Channels

Channels, buffered vs. unbuffered, close, select, range über Channels, nil Channels

22 Interview-Fragen·
Junior
1

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.

2

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.

3

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.

4

Wie erstellt man einen buffered Channel mit einer Kapazität von 10 Elementen?

5

Wie sendet man einen Wert in einen Channel?

+19 Interview-Fragen

Meistere Go für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten