一個考併發的面試題,怎麼答??

gosky發表於2019-03-21

今天面試做筆試,遇到這道題

package main

import (
    "fmt"
    "runtime"
    "sync"
    "time"
)

func main() {
    runtime.GOMAXPROCS(1)

    var wg sync.WaitGroup
    wg.Add(10)

    for i := 0; i < 10; i++ {
        go func() {
            fmt.Println(i)
            wg.Done()
        }()
    }

    wg.Wait()
}

我的回答是輸出值不確定

更新: 多謝 h12 朋友指出 我做題時注意到了 wait 之後,goroutines 才會有執行機會 也注意到了 i 的取值,但忽略了兩者的關聯 粗心了,活該被刷掉

更多原創文章乾貨分享,請關注公眾號
  • 一個考併發的面試題,怎麼答??
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章