Go

Channels

Channels, buffered vs unbuffered, close, select, range po channels, nil channels

22 pytań z rozmów·
Junior
1

Czym jest channel w Go?

Odpowiedź

Channel to typ danych umożliwiający komunikację i synchronizację między goroutine. Działa jak typowany kanał pozwalający na wysyłanie i odbieranie wartości w sposób thread-safe. Używaj channels do współdzielenia danych między goroutine zamiast bezpośredniego współdzielenia pamięci.

2

Jak utworzyć unbuffered channel liczb całkowitych w Go?

Odpowiedź

Unbuffered channel tworzy się za pomocą make(chan T) bez podawania pojemności. Blokuje nadawcę, dopóki odbiorca nie będzie gotowy, zapewniając ścisłą synchronizację. Używaj unbuffered channels do komunikacji one-to-one wymagającej jawnej synchronizacji.

3

Jaka jest główna różnica między buffered a unbuffered channel?

Odpowiedź

Unbuffered channel blokuje nadawcę, dopóki odbiorca nie będzie gotowy (ścisła synchronizacja), podczas gdy buffered channel może przechowywać wartości aż do swojej pojemności przed zablokowaniem. Buffered channels rozdzielają goroutine i poprawiają wydajność w niektórych przypadkach, ale mogą ukrywać problemy współbieżności. Używaj unbuffered do synchronizacji, buffered do przepustowości.

4

Jak utworzyć buffered channel o pojemności 10 elementów?

5

Jak wysłać wartość do channel?

+19 pytań z rozmów

Opanuj Go na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo