我所知道的 Golang - Context

我所知道的 Golang Context 前言 最近在做一個 Side Project 。 使用到了 MongoDB,自然而然地去找了 Mongodb 的 Driver 來幫助開發。 看了範例之後,常常看到 context 的使用,比如說 ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) defer cancel() res, err := collection.InsertOne(ctx, bson.D{{"name", "pi"}, {"value", 3.14159}}) id := res.InsertedID 雖然對 context 有一定的概念(提供 timeout, cancel 機制),卻沒有好好的統整一下 Golang 的 context 到底在做些什麼? 就讓我來說說,我現在所知道的 Golang Context 吧! Context 的主要功用 Context 訊息傳遞(request-scoped),處理 http 請求 控制子 goroutine 的運行 timeout cancellation Context 基本解析 type Context interface { Deadline() (deadline time....

2021-09-01 · 3 分钟 · Lester