国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

golang之context實(shí)用記錄

這篇具有很好參考價(jià)值的文章主要介紹了golang之context實(shí)用記錄。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

簡(jiǎn)言

  1. WithCancel()函數(shù)接受一個(gè) Context 并返回其子Context和取消函數(shù)cancel

  2. 新創(chuàng)建協(xié)程中傳入子Context做參數(shù),且需監(jiān)控子Context的Done通道,若收到消息,則退出

  3. 需要新協(xié)程結(jié)束時(shí),在外面調(diào)用 cancel 函數(shù),即會(huì)往子Context的Done通道發(fā)送消息

  4. 注意:當(dāng) 父Context的 Done() 關(guān)閉的時(shí)候,子 ctx 的 Done() 也會(huì)被關(guān)閉

實(shí)驗(yàn)步驟

  1. 利用根Context創(chuàng)建一個(gè)父Context,使用父Context創(chuàng)建一個(gè)協(xié)程,

  2. 利用上面的父Context再創(chuàng)建一個(gè)子Context,使用該子Context創(chuàng)建一個(gè)協(xié)程

  3. 一段時(shí)間后,調(diào)用父Context的cancel函數(shù),會(huì)發(fā)現(xiàn)父Context的協(xié)程和子Context的協(xié)程都收到了信號(hào),被結(jié)束了

package main
import (
	"context"
	"fmt"
	"log"
	"os"
	"time"
)
func ctxjob() {
	ctx := context.Background()
	subctx, c := context.WithCancel(ctx)
	action := func(sctx context.Context, id int) {
		for {
			select {
			case <-sctx.Done():
				fmt.Println("action done exit.", id)
				return
			default:
				fmt.Println("action running...", id)
				time.Sleep(1 * time.Second)
			}
		}

	}
	go action(subctx, 1)
	sub2ctx, _ := context.WithCancel(subctx)
	go action(sub2ctx, 2)
	time.Sleep(10 * time.Second)
	fmt.Println("stop action")
	c()
	time.Sleep(1 * time.Second)
	fmt.Println("stop action done.")

}
func main() {
	// pullRedis()
	ctxjob()
}

輸出:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-704959.html

PS E:\bug\go-leo-t> go build main.go
PS E:\bug\go-leo-t> .\main.exe      
action running... 2
action running... 1
action running... 1
action running... 2
action running... 1
action running... 2
action running... 2
action running... 1
action running... 1
action running... 2
action running... 2
action running... 1
action running... 2
action running... 1
action running... 1
action running... 2
action running... 2
action running... 1
action running... 1
action running... 2
stop action
action done exit. 2
action done exit. 1
stop action done.

到了這里,關(guān)于golang之context實(shí)用記錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • golang中給數(shù)據(jù)庫(kù)datetime格式賦值

    1、定義數(shù)據(jù)庫(kù)表映射結(jié)構(gòu)體如上,create_time字段在表里面是datetime格式。 2、如果CreateTime不給值,在存庫(kù)時(shí),create_time字段的值為NULL。 3、賦值時(shí),如下代碼

    2024年02月09日
    瀏覽(33)
  • golang操作數(shù)據(jù)庫(kù)--gorm框架、redis

    ①引入 ②初始化 ③增刪改查 官網(wǎng): http://gorm.io/ ①引入 ②初始化 ③增刪改查 說(shuō)明:Debug()可以查看執(zhí)行的sql語(yǔ)句。 ④gorm gen的使用 a.先安裝 (會(huì)安裝到gopath的bin目錄下,windows電腦,需要將該路徑加入到系統(tǒng)路徑) eg : b.舉例: 說(shuō)明1:windows電腦go install之后,把exe添加到系統(tǒng)路

    2024年02月10日
    瀏覽(26)
  • golang web學(xué)習(xí)隨便記4-內(nèi)存、文件、數(shù)據(jù)庫(kù)

    我們來(lái)開(kāi)始學(xué)習(xí)如何存儲(chǔ)數(shù)據(jù)。書(shū)中有一點(diǎn)不錯(cuò),就是并不是一上來(lái)就告訴你存儲(chǔ)數(shù)據(jù)使用數(shù)據(jù)庫(kù),因?yàn)椴煌臄?shù)據(jù)存儲(chǔ)適合不同的手段。 先來(lái)看在內(nèi)存中存儲(chǔ)數(shù)據(jù):下面的例子用結(jié)構(gòu)體方式在內(nèi)存存放數(shù)據(jù),然后利用兩個(gè)map來(lái)表示“索引”,鍵值對(duì)中的值是指向內(nèi)存中結(jié)構(gòu)

    2024年02月06日
    瀏覽(28)
  • Python數(shù)據(jù)庫(kù)模塊sqlite3操作實(shí)例(非常實(shí)用)

    當(dāng)使用Python進(jìn)行SQLite數(shù)據(jù)庫(kù)操作時(shí), sqlite3 模塊是一個(gè)非常常用和強(qiáng)大的工具。它提供了一系列函數(shù)和方法,用于創(chuàng)建、連接、查詢和管理數(shù)據(jù)庫(kù)。下面是一些常見(jiàn)的用法示例: ? sqlite-utils 、 sqlitebiter 和其他類似的庫(kù)可以提供更高級(jí)的功能,包括預(yù)編譯語(yǔ)句的執(zhí)行優(yōu)化和數(shù)

    2024年02月13日
    瀏覽(30)
  • MySQL 數(shù)據(jù)庫(kù)實(shí)用指南:測(cè)試數(shù)據(jù)準(zhǔn)備、SQL語(yǔ)句規(guī)范與基本操作

    MySQL 數(shù)據(jù)庫(kù)實(shí)用指南:測(cè)試數(shù)據(jù)準(zhǔn)備、SQL語(yǔ)句規(guī)范與基本操作

    歡迎來(lái)到小K的MySQL專欄,本節(jié)將為大家準(zhǔn)備MySQL測(cè)試數(shù)據(jù)、以及帶來(lái)SQL語(yǔ)句規(guī)范、數(shù)據(jù)庫(kù)的基本操作的詳細(xì)講解 要學(xué)習(xí)SQL查詢語(yǔ)句,首先必須解決一個(gè)問(wèn)題,數(shù)據(jù)問(wèn)題。為了方便大家學(xué)習(xí)閱讀我的文章,在這里提供了一個(gè)test.sql文件 ? 登錄MySQL,輸入 source xxx/test.sql 導(dǎo)入sql文

    2024年02月08日
    瀏覽(33)
  • Golang 程序漏洞檢測(cè)利器 govulncheck(二):漏洞數(shù)據(jù)庫(kù)詳解

    上一篇文章詳細(xì)介紹了 Golang 程序漏洞掃描工具 govulncheck 的使用方法,govulncheck 強(qiáng)大功能的背后,離不開(kāi) Go 漏洞數(shù)據(jù)庫(kù)(Go vulnerability database)的支持,接下來(lái)詳細(xì)講解下 Go 漏洞數(shù)據(jù)庫(kù)相關(guān)的知識(shí)。 在當(dāng)今數(shù)字化的世界中,軟件安全是至關(guān)重要的。隨著 Golang 在開(kāi)發(fā)領(lǐng)域的日

    2024年02月10日
    瀏覽(25)
  • “探索Redis:高性能鍵值存儲(chǔ)數(shù)據(jù)庫(kù)的實(shí)用指南“

    標(biāo)題:探索Redis:高性能鍵值存儲(chǔ)數(shù)據(jù)庫(kù)的實(shí)用指南 引言: Redis是一種高性能的鍵值存儲(chǔ)數(shù)據(jù)庫(kù),它通過(guò)將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,提供了快速的讀寫操作。本文將介紹Redis的基本概念和常用功能,并提供示例代碼幫助讀者更好地理解和應(yīng)用Redis。 Redis的基本概念 Redis是一個(gè)開(kāi)源的

    2024年02月15日
    瀏覽(27)
  • 使用示例和應(yīng)用程序全面了解高效數(shù)據(jù)管理的Golang MySQL數(shù)據(jù)庫(kù)

    使用示例和應(yīng)用程序全面了解高效數(shù)據(jù)管理的Golang MySQL數(shù)據(jù)庫(kù)

    Golang,也被稱為Go,已經(jīng)成為構(gòu)建強(qiáng)大高性能應(yīng)用程序的首選語(yǔ)言。在處理MySQL數(shù)據(jù)庫(kù)時(shí),Golang提供了一系列強(qiáng)大的庫(kù),簡(jiǎn)化了數(shù)據(jù)庫(kù)交互并提高了效率。在本文中,我們將深入探討一些最流行的Golang MySQL數(shù)據(jù)庫(kù)庫(kù),通過(guò)實(shí)際示例來(lái)探索它們的功能。 GORM是用于Golang的功能豐富

    2024年02月08日
    瀏覽(52)
  • 實(shí)用技巧:Linux上實(shí)現(xiàn)OpenGauss數(shù)據(jù)庫(kù)遠(yuǎn)程連接,方便的跨網(wǎng)絡(luò)數(shù)據(jù)操作

    實(shí)用技巧:Linux上實(shí)現(xiàn)OpenGauss數(shù)據(jù)庫(kù)遠(yuǎn)程連接,方便的跨網(wǎng)絡(luò)數(shù)據(jù)操作

    openGauss是一款開(kāi)源關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),采用木蘭寬松許可證v2發(fā)行。openGauss內(nèi)核深度融合華為在數(shù)據(jù)庫(kù)領(lǐng)域多年的經(jīng)驗(yàn),結(jié)合企業(yè)級(jí)場(chǎng)景需求,持續(xù)構(gòu)建競(jìng)爭(zhēng)力特性. 結(jié)合cpolar 內(nèi)網(wǎng)穿透工具,即可實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)本地openGauss,實(shí)現(xiàn)遠(yuǎn)程訪問(wèn),下面介紹從Linux安裝到遠(yuǎn)程訪問(wèn)的方式

    2024年02月08日
    瀏覽(24)
  • 基于Linux對(duì)MySQL數(shù)據(jù)庫(kù)的安全加固指南(超實(shí)用--實(shí)戰(zhàn)版)

    基于Linux對(duì)MySQL數(shù)據(jù)庫(kù)的安全加固指南(超實(shí)用--實(shí)戰(zhàn)版)

    ????? 博主簡(jiǎn)介 ????云計(jì)算領(lǐng)域優(yōu)質(zhì)創(chuàng)作者 ????華為云開(kāi)發(fā)者社區(qū)專家博主 ????阿里云開(kāi)發(fā)者社區(qū)專家博主 ?? 交流社區(qū): 運(yùn)維交流社區(qū) 歡迎大家的加入! ?? 希望大家多多支持,我們一起進(jìn)步!?? ??如果文章對(duì)你有幫助的話,歡迎 點(diǎn)贊 ???? 評(píng)論 ?? 收藏

    2024年02月07日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包