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.