Go · Avançado · Inglês · Técnico
pipeline
Série de etapas ligadas por channels, em que cada etapa é uma goroutine que recebe valores da anterior, os transforma e os envia para a seguinte.
Onde usar
Permite processar fluxos de dados em partes, com cada etapa trabalhando ao mesmo tempo. Cada etapa fecha seu channel de saída ao terminar, o que propaga o fim adiante.
Em código
func dobrar(in <-chan int) <-chan int {
out := make(chan int)
go func() {
defer close(out)
for v := range in { out <- v * 2 }
}()
return out
}Exemplos
The pipeline reads, parses and writes in three stages.
O pipeline lê, interpreta e grava em três etapas.
Each stage of the pipeline closes its output channel when done.
Cada etapa do pipeline fecha seu channel de saída ao terminar.
Cuidado
Se um consumidor desiste no meio, os produtores ficam bloqueados enviando; passe um context ou done channel para evitar o vazamento.
Sinônimos
linha de montagem
Origem
De pipe, 'cano', e line, 'linha'.