Go

Channels

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

22 perguntas de entrevista·
Junior
1

O que é um channel em Go?

Resposta

Um channel é um tipo de dado que permite a comunicação e a sincronização entre goroutines. Ele funciona como um conduto tipado que permite enviar e receber valores de forma thread-safe. Use channels para compartilhar dados entre goroutines em vez de compartilhar a memória diretamente.

2

Como criar um unbuffered channel de inteiros em Go?

Resposta

Um unbuffered channel é criado com make(chan T) sem especificar capacidade. Ele bloqueia o emissor até que um receptor esteja pronto, garantindo uma sincronização estrita. Use unbuffered channels para comunicações one-to-one que exigem sincronização explícita.

3

Qual é a principal diferença entre um buffered e um unbuffered channel?

Resposta

Um unbuffered channel bloqueia o emissor até que um receptor esteja pronto (sincronização estrita), enquanto um buffered channel pode armazenar valores até sua capacidade antes de bloquear. Os buffered channels desacoplam as goroutines e melhoram o desempenho em alguns casos, mas podem ocultar problemas de concorrência. Use unbuffered para sincronização, buffered para throughput.

4

Como criar um buffered channel com capacidade de 10 elementos?

5

Como enviar um valor para um channel?

+19 perguntas de entrevista

Domine Go para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis