上下文樹表示為有向圖

從 Go 程式碼構建的簡單上下文樹(包含可能是請求作用域幷包含在上下文中的一些常見值),如下所示:

// Pseudo-Go
ctx := context.WithValue(
    context.WithDeadline(
        context.WithValue(context.Background(), sidKey, sid),
        time.Now().Add(30 * time.Minute),
    ),
    ridKey, rid,
)
trCtx := trace.NewContext(ctx, tr)
logCtx := myRequestLogging.NewContext(ctx, myRequestLogging.NewLogger())

是一個可以表示為有向圖的樹,如下所示:

StackOverflow 文件

每個子上下文都可以訪問其父上下文的值,因此資料訪問在樹中向上流動(由黑色邊緣表示)。另一方面,取消訊號沿著樹向下移動(如果取消上下文,則其所有子節點也被取消)。消除訊號流由灰色邊緣表示。