Sobes.tech
Junior — Middle

Consegues listar diferentes cenários de uso do contexto na programação ou arquitetura de sistemas?

sobes.tech IA

Resposta da IA

No Go, context é utilizado para transmitir informações sobre o estado de execução, cancelar operações e definir limites de tempo entre goroutines e funções. Os principais cenários de uso do contexto:

  • Cancelamento de operações: permite cancelar operações longas ou bloqueantes, por exemplo, ao fechar um servidor ou cancelar uma solicitação.
  • Transmissão de limites de tempo: pode-se definir um tempo após o qual a operação deve ser interrompida.
  • Transmissão de valores: o contexto pode conter pares chave-valor, como identificadores de solicitações, tokens de autenticação.
  • Sincronização: ajuda a coordenar o trabalho de várias goroutines para que elas terminem corretamente.

Exemplo de uso:

ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()

// passamos ctx para uma função que pode ser interrompida pelo timeout
result, err := doSomething(ctx)

Assim, context ajuda a gerenciar o ciclo de vida das operações e a transmitir metadados.