Вопрос: Как ограничить время выполнения через context + select?

Python Middle Без компании
Вопрос: Как ограничить время выполнения через context + select?
Ответы
```go ctx, cancel := context.WithTimeout(context.Background(), 200*time.Millisecond) defer cancel() done := make(chan error, 1) go func() { done <- doWork() }() select { case err := <-done: _ = err case <-ctx.Done(): fmt.Println("timeout") } ``` **Как это работает:** контекст сигнализирует отмену, но goroutine должна корректно завершаться (cooperative cancellation).