第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

得到“致命錯(cuò)誤:所有 goroutine 都睡著了 - 死鎖!

得到“致命錯(cuò)誤:所有 goroutine 都睡著了 - 死鎖!

Go
蕪湖不蕪 2021-08-10 13:23:30
我正在嘗試剝離一組 goroutine,然后等待它們?nèi)客瓿伞mport "sync"func doWork(wg sync.WaitGroup) error {    defer wg.Done()    // Do some heavy lifting... request URL's or similar    return nil}func main() {    var wg sync.WaitGroup    for i := 0; i < 10; i++ {        wg.Add(1)        go doWork(wg)    }    wg.Wait()}但是,當(dāng)我運(yùn)行此代碼時(shí),出現(xiàn)以下錯(cuò)誤:fatal error: all goroutines are asleep - deadlock!goroutine 16 [semacquire]:sync.runtime_Semacquire(0xc20818c658)    /usr/local/Cellar/go/1.3/libexec/src/pkg/runtime/sema.goc:199 +0x30sync.(*WaitGroup).Wait(0xc2080544e0)    /usr/local/Cellar/go/1.3/libexec/src/pkg/sync/waitgroup.go:129 +0x14bmain.main()    /Users/kevin/code/vrusability/scripts/oculus_share_ratings.go:150 +0x398我很困惑,因?yàn)槲規(guī)缀跬耆凑瘴臋n示例演示的方式編寫了它。
查看完整描述

2 回答

?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊

您需要傳遞一個(gè)指向 WaitGroup 的指針,而不是 WaitGroup 對象。當(dāng)您傳遞實(shí)際的 WaitGroup 時(shí),Go 會(huì)復(fù)制該值,并調(diào)用Done()該副本。結(jié)果是原始的WaitGroup 將有10 個(gè)Add 并且沒有Done,并且WaitGroup 的每個(gè)副本將有一個(gè)Done() 并且當(dāng)WaitGroup 傳遞給函數(shù)時(shí)有多少Add。


而是傳遞一個(gè)指針,每個(gè)函數(shù)都將引用相同的 WaitGroup。


import "sync"


func doWork(wg *sync.WaitGroup) error {

    defer wg.Done()

    // Do some heavy lifting... request URL's or similar

    return nil

}


func main() {

    wg := &sync.WaitGroup{}

    for i := 0; i < 10; i++ {

        wg.Add(1)

        go doWork(wg)

    }

}


查看完整回答
反對 回復(fù) 2021-08-10
  • 2 回答
  • 0 關(guān)注
  • 266 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號