亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 解決golang sync.Wait()不執(zhí)行的問題

解決golang sync.Wait()不執(zhí)行的問題

熱門標簽:上海極信防封電銷卡價格 湛江crm外呼系統(tǒng)排名 重慶慶云企業(yè)400電話到哪申請 地圖標注免費定制店 寧波語音外呼系統(tǒng)公司 宿遷便宜外呼系統(tǒng)代理商 不封卡外呼系統(tǒng) 仙桃400電話辦理 鄭州智能語音電銷機器人價格

goroutine 似乎不用解釋太多,可以利用它實現(xiàn)多線程,也可以利用它來實現(xiàn)異步事件。

在使用關鍵字go的過程中,常常會將用到sync.WaitGroup,如下一段代碼。

package main
import (
	"fmt"
	"sync"
	"time"
)
func Run() {
	var wg = sync.WaitGroup{}
	go func() {
		wg.Add(1)
		fmt.Println("halo world start")
		time.Sleep(time.Second * 5)
		fmt.Println("halo world end")
		wg.Done()
	}()
	// time.Sleep(time.Millisecond * 5)
	// fmt.Println("server will start")
	wg.Wait()
}
func main() {
	Run()
}
// output:
// 

期待的結果是打印 halo world start,5秒后打印halo world end,但是結果就是什么都沒有,并且進程立即就結束了。

原因

關鍵字go是異步的,當執(zhí)行到go,不會立即執(zhí)行go 后面的內(nèi)容,而且繼續(xù)往下執(zhí)行。此時wg.Add(1)還沒有來得及執(zhí)行,wg.Wait()就已經(jīng)執(zhí)行,即不會發(fā)生等待,進程就結束了。

怎么解決:

只需要在wg.Wait()前有其他操作,給與足夠的時間讓wg.Add(1)執(zhí)行即可,

方法一、時間等待,在wg.Wait()前加一句time.Sleep(time.Millisecond*5),既不影響性能,也能讓wg.Add(1)來得及執(zhí)行

方法二、有IO操作,在wg.Wait()有其他IO操作,比如fmt.Println("server will start"),原因是std的輸出會將進程從用戶態(tài)轉(zhuǎn)向內(nèi)核態(tài),打印命令發(fā)出后,又切回用戶態(tài),這個狀態(tài)的轉(zhuǎn)換是很有消耗的,wg.Add(1)也就有時間執(zhí)行。

Don't worry

是否有存在擔心,方法一的時間等待,等待的時候不夠長,還是讓wg.Add(1)來不及執(zhí)行。don't worry.

這里涉及到goroutine的調(diào)度問題,go進程在執(zhí)行過程中,必須從goroutine隊列中取出一個來執(zhí)行,當wg.Wait()執(zhí)行前就算執(zhí)行time.Sleep(time.Nanosecond), 一納秒,一…一…一納秒,wg.Add(1)也來得及執(zhí)行,因為主goroutine會被切換到睡眠狀態(tài),go進程必須要取一個線程來執(zhí)行,就會取到wg.Add(1)這個線程,接下來就順理成章了。

同時方法二也是異曲同工,當發(fā)出打印的事件,整個進程都會被切換到就緒態(tài),然后再被cpu執(zhí)行。

補充:【golang】sync.WaitGroup{}的wait()調(diào)用位置不同導致意想不到錯誤

協(xié)程go多了,總覺的天下我有,沒事就喜歡go一個協(xié)程,信手拈來,在項目中寫個如下類似代碼:

  wh := sync.WaitGroup{}
  out := make(chan string)
  go func() {
    wh.Wait()
    close(out)
  }()
  go func() {
    for i := 0; i  2; i++ {
      wh.Add(1)
      go tt(out)
      wh.Done()
    }
  }()

想著開個協(xié)程去wait所有協(xié)程組,測試一下通了,沒問題,好牛逼,協(xié)程呀!!

可多測試即便就會出現(xiàn):

send close channel

或者協(xié)程定死在某一個,還自已為是的認為自己寫的子方法估計不小心關閉了channel,找了半天只找到在wg.wait()后進行了關閉。就這樣扣了好久,還沒想到自己畫蛇添足的錯誤,經(jīng)大佬一指點,原來開一個協(xié)程,還沒等后一個協(xié)程進行wg.add(1)操作,wg.wait()就已經(jīng)過了,關閉了channel。

只好老老實實寫:

  wh := sync.WaitGroup{}
  out := make(chan string)
  go func() {
    for i := 0; i  2; i++ {
      wh.Add(1)
      go tt(out)
      wh.Done()
    }
    wh.Wait()
    close(out)
  }()

其實就是一個小小的同步問題,旁觀者清呀!!!

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Golang中的sync包的WaitGroup操作
  • Golang中的sync.WaitGroup用法實例
  • 深入Golang中的sync.Pool詳解
  • golang中使用sync.Map的方法
  • golang中sync.Map并發(fā)創(chuàng)建、讀取問題實戰(zhàn)記錄
  • 在golang中使用Sync.WaitGroup解決等待的問題

標簽:物業(yè)服務 電子產(chǎn)品 儋州 西雙版納 海南 青海 遼寧 安康

巨人網(wǎng)絡通訊聲明:本文標題《解決golang sync.Wait()不執(zhí)行的問題》,本文關鍵詞  解決,golang,sync.Wait,不執(zhí),;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《解決golang sync.Wait()不執(zhí)行的問題》相關的同類信息!
  • 本頁收集關于解決golang sync.Wait()不執(zhí)行的問題的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产一区二区福利久久| 国产视频网站在线观看| 亚洲精品影院一区二区| 国产成人精品影视| 四虎影视久久久| 天天做日日干| 日韩欧美一二三区| 香蕉视频一级| 九九九在线视频| 天天做人人爱夜夜爽2020| 久久久久久久免费视频| 精品国产亚一区二区三区| 高清一级做a爱过程不卡视频| 亚洲精品影院久久久久久| 一本高清在线| 精品视频一区二区三区免费| 麻豆网站在线免费观看| 999精品视频在线| 国产一区二区精品| 中文字幕97| 韩国三级视频在线观看| 国产精品自拍在线观看| 天堂网中文字幕| 久久精品人人做人人爽97| 欧美另类videosbestsex| 午夜欧美成人久久久久久| 国产麻豆精品hdvideoss| 日本伦理片网站| 亚欧视频在线| 国产亚洲精品成人a在线| 国产成人啪精品| 青青久在线视频| 欧美激情一区二区三区在线| 超级乱淫黄漫画免费| 精品美女| 国产伦精品一区三区视频| 午夜激情视频在线播放| 99色视频在线| 国产一级生活片| 一级毛片视频免费| 日韩在线观看视频黄| 中文字幕Aⅴ资源网| 999久久狠狠免费精品| 成人免费观看的视频黄页| 日韩一级精品视频在线观看| 色综合久久手机在线| 国产一级生活片| 国产一区二区精品久久| 国产视频网站在线观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产一区二区精品| 欧美1区| 一级片片| 精品视频在线观看一区二区| 欧美国产日韩精品| 免费国产在线观看| 黄视频网站在线免费观看| 国产亚洲精品成人a在线| 日韩一级黄色| 国产不卡在线播放| 成人av在线播放| 国产伦精品一区二区三区在线观看| 91麻豆爱豆果冻天美星空| 99色视频在线观看| 久久99爰这里有精品国产| 久久久成人影院| 久草免费资源| 你懂的在线观看视频| 青青青草视频在线观看| 欧美日本二区| 久久精品欧美一区二区| 午夜家庭影院| 91麻豆精品国产综合久久久| 日韩中文字幕一区| 午夜精品国产自在现线拍| 国产不卡在线看| 国产91精品一区二区| 国产成人精品综合久久久| 91麻豆精品国产高清在线| 欧美激情在线精品video| 日日日夜夜操| 毛片成人永久免费视频| 国产一区免费观看| 一本伊大人香蕉高清在线观看| 国产麻豆精品免费密入口| 国产一区精品| a级毛片免费观看网站| 亚飞与亚基在线观看| 青青久久精品国产免费看| 亚洲精品中文字幕久久久久久| 国产一区二区高清视频| 久久精品欧美一区二区| a级黄色毛片免费播放视频 | 国产91精品系列在线观看| 精品视频一区二区三区免费| 国产精品自拍亚洲| 精品国产香蕉伊思人在线又爽又黄| 精品久久久久久中文字幕2017| 亚洲www美色| 国产成人欧美一区二区三区的| 免费的黄视频| 九九免费高清在线观看视频| 国产一区二区精品| 九九九国产| 美女免费精品视频在线观看| 欧美一级视频免费观看| 免费一级片在线观看| 尤物视频网站在线观看| 亚洲天堂在线播放| 亚洲天堂免费观看| 国产精品1024永久免费视频 | 精品久久久久久中文| 午夜家庭影院| 韩国毛片免费大片| 精品国产亚一区二区三区| 精品国产一区二区三区国产馆| 久久国产精品自由自在| 九九精品影院| 日本伦理片网站| 亚洲天堂免费观看| 国产伦久视频免费观看 视频 | 久久99这里只有精品国产| 久草免费在线观看| 欧美a级成人淫片免费看| 国产精品自拍在线| 午夜精品国产自在现线拍| 欧美电影免费看大全| 国产成人精品影视| 中文字幕97| 一级女性全黄久久生活片| 欧美另类videosbestsex高清| 日韩av成人| 久久99中文字幕| 黄视频网站在线观看| 九九久久99综合一区二区| 国产网站麻豆精品视频| 台湾美女古装一级毛片| 美女免费精品高清毛片在线视| 欧美大片毛片aaa免费看| 久久福利影视| 九九九在线视频| 午夜在线观看视频免费 成人| 精品久久久久久中文字幕2017| 超级乱淫黄漫画免费| 麻豆系列国产剧在线观看| 九九干| 韩国三级香港三级日本三级| 色综合久久手机在线| 精品在线观看国产| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 一级女性大黄生活片免费| 美女免费精品视频在线观看| 日本特黄特色aa大片免费| 国产一区二区精品久久91| 久久精品欧美一区二区| 成人免费网站久久久| 九九免费精品视频| 国产网站免费在线观看| 91麻豆国产福利精品| 韩国三级香港三级日本三级| 国产综合91天堂亚洲国产| 一a一级片| 国产极品精频在线观看| 精品在线观看国产| 毛片高清| 亚洲天堂免费观看| 久久久久久久免费视频| 黄色福利片| 午夜在线影院| 91麻豆精品国产自产在线| 国产91精品系列在线观看| 四虎精品在线观看| 麻豆网站在线免费观看| 精品毛片视频| 黄视频网站在线免费观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 日韩专区亚洲综合久久| 亚洲第一页乱| 九九精品久久| 国产一区二区精品| 日韩免费片| 欧美另类videosbestsex久久| 一级女性大黄生活片免费| 日韩一级黄色| 免费国产在线视频| 国产不卡在线观看| 欧美18性精品| 国产91视频网| 99久久网站| 精品在线观看国产| 国产伦精品一区二区三区无广告| 成人a级高清视频在线观看| 免费的黄视频| 国产视频一区在线| 国产91精品一区二区| 99久久精品国产高清一区二区| 九九久久99综合一区二区| 四虎精品在线观看| 一级女性全黄久久生活片| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 |