ExpertiDict

Go · Avançado · Inglês · Técnico

pipeline

/ˈpaɪp.laɪn/substantivo

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'.

Veja também

Todos os termos de Go