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

歡迎光臨散文網(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的概念和使用方法的評論 (共 條)

分享到微博請遵守國家法律
兴海县| 蓬溪县| 天柱县| 鄄城县| 阿瓦提县| 嘉祥县| 芮城县| 玉门市| 仁布县| 临沂市| 九江县| 长丰县| 南汇区| 金沙县| 聂荣县| 绥江县| 濉溪县| 东方市| 崇礼县| 鹿泉市| 枣庄市| 石城县| 滁州市| 榆社县| 和顺县| 涟水县| 萨迦县| 石林| 顺昌县| 安仁县| 车险| 康马县| 利川市| 呼和浩特市| 长沙市| 清镇市| 靖边县| 张家港市| 胶州市| 岳西县| 巴南区|