Golang Context 的使用指南_golang context 使用
package main
import (
"context"
"fmt"
"time"
)
func main() {
// 创建一个带有超时的context
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel() // 确保在完成操作后取消context
select {
case <-ctx.Done():
fmt.Println("Context is done:", ctx.Err())
case <-time.After(10 * time.Second):
fmt.Println("Operation completed without context cancelation")
}
}
这段代码创建了一个具有5秒超时的context,并在主goroutine中使用select语句等待context完成或者超时。如果context完成,会打印相关的错误信息。如果是超时,会继续执行其他逻辑。这是一个很好的实践,可以在多种场景中使用,例如网络请求、长时间任务的管理等。
评论已关闭