最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

golang context的概念和使用方法

2023-04-14 18:33 作者:daxiavip  | 我要投稿

什么是context?

  • 請求Go服務(wù)器的各request通過不同的goroutine來處理

  • request的handle可以訪問DB或者RPC等

  • 保存請求過程中的token,request期限等

  • request超時的時候,釋放資源

  • 可以把request作用域的值全部傳給goroutine的context包

使用方法

主要的使用場景有兩種:

  • 傳遞request作用域的值

  • cancel取消

context.Context interface

goblog說明概要:

  • content取消,超時的時候返回關(guān)閉的通道的Done()

  • 通過Err()?error結(jié)構(gòu)體返回,為什么Done通道關(guān)閉了

  • Deadline設(shè)定了的場合,返回Deadline的Deadline()

  • 返回通過key保管的值

生成

通過下面兩種發(fā)發(fā)可以生成

通過http.Request.Context()也可以獲得

  • Background()

? ? ? 基本上都通過這種獲取


  • TODO()

    不知道是否要使用但是不想傳nil,那么就用這個方法。

    行為上和Background一樣,返回一個空的context


request作用域的值的傳播

不要把什么信息都放到里面,按照最小需求把認(rèn)證和Deadlin的信息放進去即可。

  • Set值 WithValue()

  • Get值 Value()

取消處理

  • WithCancel(parent Context) (ctx Context,cancel CancelFunc)

    父context傳遞給子context的話,子的context和cancel方法

    第二個返回值CancelFunc可以取消子的context

  • WithTimeout

第二個參數(shù)如果指定的話,經(jīng)過了這些時間就會執(zhí)行取消處理

  • WithDeadline

和WithTimeout基本相同,不是經(jīng)過多久,而是截止到什么時候取消。

例子

執(zhí)行結(jié)果:


寫這個文章是參照了下面這個頁面:

https://qiita.com/marnie_ms4/items/985d67c4c1b29e11fffc

golang context的概念和使用方法的評論 (共 條)

分享到微博請遵守國家法律
大理市| 招远市| 岑巩县| 宜兰市| 酉阳| 内乡县| 涞水县| 博爱县| 顺义区| 玛纳斯县| 安西县| 措美县| 滕州市| 比如县| 方山县| 麻栗坡县| 南丹县| 遵义县| 图木舒克市| 隆回县| 翁源县| 台中市| 淳安县| 米易县| 方山县| 桐城市| 厦门市| 德保县| 广德县| 积石山| 天祝| 连平县| 靖西县| 内丘县| 霍州市| 图木舒克市| 仙居县| 安顺市| 金山区| 汉沽区| 大新县|